下面给出两个案例:自己体会
案例一:定义一个人,人拿着某牌子的手机,手机号为…
#include <iostream>
#include<string>
using namespace std;
class phone {
public:
string m_ph_name;
string m_ph_num;
phone(string phone_name, string phone_num):m_ph_num(phone_num), m_ph_name(phone_name){
cout << "phone的构造函数被调用" << endl;
}
~phone() {
cout << "phone的析构函数被调用" << endl;
}
};
class person {
public:
string per_name;
phone sname;
//千万要注意对那个类构造出来的对象一定要使用初始化列表把所有的数据成员都初始化了。
person(string name1, string name2,string name3) :per_name(name1), sname(name2,name3) {
cout << "person的构造函数被调用" << endl;
}
~person() {
cout << "person的析构函数被调用" << endl;
}
};
int main() {
person p("张瑞强", "华为","18732097363");
cout <<"人的名字:"<< p.per_name << endl;
cout <<"手机的名字:"<< p.sname.m_ph_name << endl;
cout << "手机号为:"<<p.sname.m_ph_num << endl;
}
案例二:
定义一个三角形类求面积,再定义一个三角锥类求体积。
#include <iostream>
using namespace std;
//定义一个三角形的类
class sjx{
public:
int a,b;
sjx(int a1,int b1):a(a1),b(b1){}
//求三角形的面积,只搞原理,公式正误先忽略
int disp(){
return a*b;
}
};
//定义一个三角锥的类
class sjz{
public:
int height;
sjx s;
//初始化自己的数据成员,也初始化那个类的数据成员
sjz(int a1,int b1,int c1):height(a1),s(b1,c1){
}
//求三角锥的体积,只搞原理,忽略公式正误。
int display(){
return height*s.disp();
}
};
int main(){
sjz z(1,2,3);
cout<<z.display();
}