如何为网站添加联系QQ的代码?
摘要:网站做tips,网站联系qq代码,帮企网站建设代运营,承德网络推广公司C类的组合什么是类的组合初始化参数列表使用类的组合案例分析组合构造和析构顺序问题this指针基本用法和作用什么是类的组合 类的组合就是以另一个对象为数据成员&am
网站做tips,网站联系qq代码,帮企网站建设代运营,承德网络推广公司C类的组合什么是类的组合初始化参数列表使用类的组合案例分析组合构造和析构顺序问题this指针基本用法和作用什么是类的组合
类的组合就是以另一个对象为数据成员#xff0c;这种情况称为类的组合 1.优先使用类的组合#xff0c;而不是继承 2.组合表达式的含义 一部分关系 初…
C类的组合什么是类的组合初始化参数列表使用类的组合案例分析组合构造和析构顺序问题this指针基本用法和作用什么是类的组合
类的组合就是以另一个对象为数据成员这种情况称为类的组合 1.优先使用类的组合而不是继承 2.组合表达式的含义 一部分关系 初始化参数列表 初始化参数列表是构造函数的另一种写法 使用 初始化参数列表的形态 构造函数名(形参1 形参2…) : 数据成员1(形参1) 数据成员2(形参2)… #includeiostream
#includestringusing namespace std;class MM
{
public:MM(int age, string name) : age(age), name(name){}void printDate(){cout age name;}private:int age;string name;
};int main()
{MM mm(19, 温柔了岁月);mm.printDate();system(pause);return 0;
}初始化列表的其他写法 无参构造函数 #includeiostream
#includestringusing namespace std;class MM
{
public://无参构造函数MM() : age(18), name(温柔了岁月){}void printDate(){cout age name;}private:int age;string name;
};int main()
{MM mm;mm.printDate();system(pause);
类的组合案例分析 1.类组合包含的类的对象必须采用初始化参数列表的方式去初始化 2.组合中初始化参数列表的写法 构造函数名(形参1 形参2 形参3,…) : 对象1(形参1 形参2) 对象2(形参3…) //组合类
#includeiostream
#includestringusing namespace std;class MM1
{
public:MM1(){cout MM1号 endl;}private:int age;string name;};class MM2
{
public:MM2(){cout MM3号 endl;}private:int age;string name;};class MM3
{
public:MM3(){cout MM3号 endl;}private:int age;string name;
};class MM
{void show(){}
private: //其他三个类都放在一个类中当做一个数据类型进行使用 MM1 mm1; MM2 mm2;MM3 mm3;
};
int main()
{MM mm;system(pause);return 0;
}这是一个简单的类的组合没有进行传参 类的组合中优先构造包含对象再构造自身的对象 下面是传了形参的组合类 #includeiostream
#includestringusing namespace std;class MM1
{
public:MM1(int age, string name){cout MM1号 endl;}void printDate(){cout MM3号 endl;}private:int age;string name;};class MM2
{
public:MM2(int age, string name){cout MM3号 endl;}void printDate(){cout MM3号 endl;}
private:int age;string name;};class MM3
{
public:MM3(int age, string name){cout MM3号 endl;}void printDate(){cout MM3号 endl;}private:int age;string name;
};class MM
{
public:MM(int x1,string y1, int x2, string y2, int x3, string y3): mm1(x1, y1), mm2(x2, y2),mm3(x3, y3){}void Print(){mm1.printDate();mm2.printDate();mm3.printDate();}MM1 getmm1()//访问数据成员{return mm1;}MM2 getMM2(){return mm2;}MM3 getMM3(){return mm3;}private: //构造顺序与此处有关,与初始化列表的顺序无关MM1 mm1;MM2 mm2;MM3 mm3;
};
int main()
{MM mm(1, 温柔, 2, 了, 3, 岁月);mm.Print();//mm.getmm1().printDate();//可以这样写system(pause);return 0;
}指针的运用(new)
#includeiostreamusing namespace std;class A
{public:A(int a) : a(a){}int getA(){return a;}
private:int a;
};class B
{
public:B(int b): b(b){}int getB(){return b;}
private:int b;
};class C
{
public:C(){pa new A(10); //方法一直接赋值pb new B(123);}C(int a, int b) :pa(new A(10)), pb(new B(12)) //方法二new的初始化列表{}void printDate(){cout pa-getA() endl;cout pb-getB() endl;}private:A* pa;B* pb;
};int main()
{C c;c.printDate();system(pause);return 0;
}组合构造和析构顺序问题 1.一般构造顺序和析构顺序是相反的 2.类的组合中优先构造包含对象在构造自身对象 3.类的组合中包含对象的构造顺序只和定义顺序有关和初始化参数列表无关 this指针
任何指针都存在一个this指针,this指针只允许在类中的函数的函数中使用 避免形参名和数据成员的命名相同 基本用法和作用 this指针代表的是每个对象抽象的地址 #includeiostream
#includestringusing namespace std;class MM
{
public:MM(int age, string name){this-age age; //可以用this指针来进行区分MM::name name; // 类加作用域来进行区分}
private:int age;string name;
};
int main()
{system(pause);
}其他作用 1.返回对象本身 2.返回对象地址 MM returnMM() //返回对象本身{return *this;}MM* returnM(){return this; //返回对象地址}
