结构体和构造函数等
#include <iostream>
#include <string>
using namespace std;
/***********************************
7.1 结构体
************************************
struct Student
{
int num;
string name;
float score[3];
}stu;
int main()
{
stu.num = 12345;
stu.name = "Li Fang";
stu.score[0] = 67.5;
stu.score[1] = 89;
stu.score[2] = 78.5;
void print(Student *);
//Student *pt = &stu;
print(&stu);
return 0;
}
void print(Student *p)
{
cout<<p->num<<" "<<p->name<<" "<<p->score[0]<<" "<< \
p->score[1]<<" "<<p->score[2]<<" "<<endl;
}
/***********************************
7.2 结构体
使用new和delete动态内存分配
************************************
struct Student
{
string name;
int num;
char sex;
};
int main()
{
Student *p;
p = new Student;
p->name = "Wang Fang";
p->num = 123;
p->sex = 'f';
cout<<"p:"<<p<<endl;
cout<<"p->name:"<<p->name<<"p->num:"<<p->num<<"p->sex:"<<p->sex<<endl;
delete p;
return 0;
}
*********************************/
/***********************************
7.2 使用默认参数的构造函数
************************************/
class Box
{
public:
Box(int h=10,int w=10,int len =10); //声明构造函数时指定默认参数
int volume();
private:
int height;
int width;
int length;
};
Box::Box(int h,int w,int len) //在定义函数时可以不指定默认参数
{
Box::height = h;
Box::width = w;
Box::length = len;
}
int Box::volume()
{
return (Box::height*Box::width*Box::length);
}
int main()
{
Box box1;
cout<<"the volume of box1 : "<<box1.volume()<<endl;
Box box2(15);
cout<<"the volume of box2 : "<<box2.volume()<<endl;
Box box3(15,30);
cout<<"the volume of box3 : "<<box3.volume()<<endl;
Box box4(15,30,20);
cout<<"the volume of box2 : "<<box4.volume()<<endl;
return 0;
}