实验名称 | 构造和析构的次序,初始列表的使用 |
实验目的 |
|
实验任务 |
12.1(第280页 修正版第288页) ex12_01 写出下列程序的输出 #include<iostream> using namespace std; class MyClass { public: MyClass(); MyClass(int); ~MyClass(); void Display(); protected: int number; }; MyClass::MyClass() { cout<<"Constructing normally.\n"; } MyClass::MyClass(int m):number(m) { //number=m; cout<<"Constructing with a number:"<<number<<endl; } void MyClass::Display() { cout<<"Display a number:"<<number<<endl; } MyClass::~MyClass() { cout<<"Destructing\n"; } int main() { MyClass obj1; MyClass obj2(20);
obj1.Display(); obj2.Display(); return 0; } 12.2(第281页 修正版第289页) ex12_02 创建一个Employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码,把表示构造函数、ChangeName()、Display()的函数原型放在类的定义中,构造函数初始化每个成员,Display()函数把完整的对象数据打印出来。其中的数据成员是保护的,函数是公共的。 |
实验内容
#include<iostream> #include<cstring> using namespace std; class StudentID { public: StudentID(int id=0) { value = id; cout << "Assigning student id"<< value << endl; } ~StudentID() { cout << "Destructing id" << value<< endl; } private: int value; }; class Student { public: Student(char * pName="no name",int ssID = 0):id(ssID){ cout <<"Constructing student" << pName<< endl; strncpy(name,pName,sizeof(name)); name[sizeof(name)-1]='\-'; } private: char name[20]; StudentID id; }; int main() { Student s("Randy",9818); Student t("Jenny"); return 0; }
#include<iostream> #include<cstring> using namespace std; class Employee { private: string p[5]; public: Employee(string name,string address,string city,string pro,string post) { p[0]=name; p[1]=address; p[2]=city; p[3]=pro; p[4]=post; } void ChangeName(string name) { p[0]=name; } void Display() { cout <<"name: "<<p[0]<<" address: "<<p[1] <<" city: "<<p[2]<<" province: "<<p[3]<<" postcode: "<<p[4]<< endl; }
}; int main() { Employee employee1("Brook","zcst","zhuhai","guangdong","545454"); employee1.Display(); return 0; } | |
小结 |
c++高级程序设计语言实验十构造函数和析构函数
最新推荐文章于 2024-10-02 08:00:00 发布