#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
// 存
void setname(string s){ name = s;}
void setage(int y){age = y; }
void setaddress(string add){address = add;}
// 取
string getname(){return name;}
int getage(){return age;}
string getaddress(){return address;}
Student & show()
{
cout<<"调用成员函数show----------------------------------------"<<endl;
cout<<"姓名: "<<name<<" --- 年龄: "<<age<<" ---- 住址: "<<address<<endl;
return *this;
}
//-- 引入构造函数:初始化成员,与类同名,没有返回值
Student(string na,int ag,string addr)
{
this->name = na; this->age = ag; this->address = addr;
cout<<"调用构造函数----------------------------------------"<<endl;
cout<<"姓名: "<<this->name<<" --- 年龄: "<<this->age<<" ---- 住址: "<<this->address<<endl;
}
protected:
private:
string name;
int age;
string address;
};
int main(void)
{
// 对应对象x后,自动调用构造函数来初始化成员.
Student x("柳絮飘",22,"学明路115号");
x.show();
x.setname("柳絮");
x.show();
// ----
return 0;
}
--
----
构造函数 初始化另外一个写法:
//-- 引入构造函数:初始化成员,与类同名,没有返回值
Student(string na,int ag,string addr):name(na),age(ag),address(addr)
{
cout<<"调用构造函数----------------------------------------"<<endl;
cout<<"姓名: "<<this->name<<" --- 年龄: "<<this->age<<" ---- 住址: "<<this->address<<endl;
}
觉得没有必要搞多种写法,搞那么多选择,毫无必要,反而增加程序员的学习时间和沟通成本.