Tips C++
Using Classes and Objects Method 1
#include <iostream>
using namespace std;
class Class2{
public:
Class2(int arg1, int arg2)
:x{arg1+1},y{arg2}{
cout << "This is from Class2 constructor\n";
}
void meth(){
cout << "Calling **meth** from Class2\n";
cout << "x+1=" << x << ", y=" << y;
}
private:
int x,y;
};
class Class1{
private:
// how to use **Class2** as a member of **Class1** ?
Class2 class2AsClass1Member;
public:
Class1(int arg1, int arg2)
:class2AsClass1Member{Class2(arg1,arg2)}{
}
void method1(){
// how to use **meth** of **Class2** in **method1** ?
class2AsClass1Member.meth();
}
void method2(){
// how to call **method1** inside **method2** ?
method1();
}
};
int main(){
Class1 c1(1,2);
c1.method2();
return 0;
}
Using Classes and Objects Method 2
#include <iostream>
//////// Begin Class1 //////////////
class Class1{
public:
Class1(int m);
int add(int n);
private:
int mValue;
};
Class1::Class1(int m) {
mValue = m;
}
int Class1::add(int n) {
return mValue + n;
}
//////// End Class1 //////////////
//////// Begin Class2 //////////////
class Class2{
public:
Class2(int n);
int plus1(int a);
int plus2();
private:
Class1 *c1;
};
Class2::Class2(int n) {
c1 = new Class1(n);
}
int Class2::plus1(int a) {
return a+1;
}
int Class2::plus2() {
// First **+1** using **Class1.add()**
// Then **+1** using **Class2.plus1()**
return plus1(c1->add(1));
}
//////// End Class2 //////////////
int main(){
Class2 c2(3);
std::cout << c2.plus2();
return 0;
}