南苑网站建设,营销型网站开发定制,wordpress插件语言包,做网站首页ps分辨率多少文章目录 类与对象构造函数、析构函数get/set方法函数#xff1a;类内声明、类外定义static 类与对象
#includeiostream
#includestring
using namespace std;
/*
类与对象
*/
class Person{public:string name;// 固有属性#xff0c;成员变量 int age;pu… 文章目录 类与对象构造函数、析构函数get/set方法函数类内声明、类外定义static 类与对象
#includeiostream
#includestring
using namespace std;
/*
类与对象
*/
class Person{public:string name;// 固有属性成员变量 int age;public:void eat(){ // 成员函数成员方法 couteat()endl;}void show(){cout[name:name, age:age]endl;}
};
int main(){Person p1; // 实例化对象 p1.name AAA;p1.age 11;p1.eat();p1.show();return 0;
} 构造函数、析构函数
#includeiostream
#includestring
using namespace std;/*
构造函数类成员属性
public属性的成员对外可见对内可见。
private属性的成员对外不可见对内可见。
protected属性的成员对外不可见对内可见且对派生类是可见的。
*/class Person{public: // 公开哪里都可以访问 string name;// 固有属性成员变量 int age;public: // 公开哪里都可以访问 Person(){// 无参构造 cout构造函数Person()endl;} Person(string _name,int _age){// 有参构造函数 name _name;age _age;cout构造函数Person(string _name,int _age)endl;}Person(const Person p){ // 复制构造函数 name p.name;age p.age;cout构造函数Person(const Person p)endl;}~Person(){ // 析构函数// 析构函数无法重载析构顺序与构造顺序相反 cout~Person()nameendl; }void show(){ // 成员函数成员方法 cout[name:name, age:age]endl;}
};
int main(){Person p1; // 实例化对象调用无参构造函数 p1.name AAA; // errorp1.age 11;p1.show();Person p2(BBB, 12);// 实例化对象调用有参构造函数 p2.show();Person p3(p1);p3.show(); return 0;
} get/set方法
#includeiostream
#includestring
using namespace std;/*
get/set方法
*/
class Person{private: // 私有仅类内可以访问 string name;// 固有属性成员变量 int age;public: // 公开哪里都可以访问 Person(){// 无参构造 cout构造函数Person()endl;} Person(string _name,int _age){// 有参构造函数 name _name;age _age;cout构造函数Person(string _name,int _age)endl;}Person(const Person p){ // 复制构造函数 name p.name;age p.age;cout构造函数Person(const Person p)endl;}~Person(){ // 析构函数// 析构函数无法重载析构顺序与构造顺序相反 cout~Person()nameendl; }// 提供get/set方法 void setName(string _name){ name _name; } string getName(){ return name; }void setAge(int _age){ age _age; }int getAge(){ return age; }void show(){ // 成员函数成员方法 cout[name:name, age:age]endl;}
};
int main(){Person p1; // 实例化对象调用无参构造函数
// p1.name AAA; // error
// p1.age 11;p1.setName(AAA);p1.setAge(11);p1.show();Person p2(BBB, 12);// 实例化对象调用有参构造函数 p2.show();Person p3(p1);p3.setName(CCC);p3.show(); return 0;
} 函数类内声明、类外定义
#includeiostream
#includestring
using namespace std;/*
函数类内声明、类外定义
*/class Person{private: // 私有仅类内可以访问 string name;// 固有属性成员变量 int age;public: // 公开哪里都可以访问 Person(); // 无参构造函数的声明 Person(string _name,int _age);// 有参构造函数的声明 Person(const Person p); // 复制构造函数的声明 ~Person(); // 析构函数的声明 // 提供get/set方法 void setName(string _name){ name _name; } string getName(){ return name; }void setAge(int _age){ age _age; }int getAge(){ return age; }void show(){ // 成员函数成员方法 cout[name:name, age:age]endl;}
};// 构造函数的类外实现
Person::Person(){// 无参构造 cout构造函数Person()endl;
}
Person::Person(string _name,int _age){// 有参构造函数 name _name;age _age;cout构造函数Person(string _name,int _age)endl;
}
Person::Person(const Person p){ // 复制构造函数 name p.name;age p.age;cout构造函数Person(const Person p)endl;
}
Person::~Person(){ // 析构函数
// 析构函数无法重载析构顺序与构造顺序相反 cout析构函数~Person()nameendl;
}int main(){Person p1;
// p1.name AAA; // error
// p1.age 11;p1.setName(AAA);p1.setAge(11);p1.show();Person p2(BBB, 12);// 实例化对象调用有参构造函数 p2.show();Person p3(p1);p3.setName(CCC);p3.show(); return 0;
} static
#includeiostream
#includestring
using namespace std;/*
内联成员函数使用inline关键字将函数定义为内联函数。
对于成员函数来说如果其定义是在类体中即使没有使用inline关键字该成员函数也被认为是内联成员函数。static 关键字 静态成员属于类
对于静态成员来说不仅可以通过对象访问还可以直接使用类名访问
----------------临时分割线
静态数据成员可以是当前类的类型而其他数据成员只能是当前类的指针或引用类型
类的静态成员函数只能访问类的静态数据成员而不能访问普通的数据成员。
静态成员函数不能定义为const成员函数即静态成员函数末尾不能使用const关键字。
*/class Person{private: // 私有仅类内可以访问 string name;// 固有属性成员变量 int age;public: // 公开哪里都可以访问 static int cnt; Person(); // 无参构造函数的声明 Person(string _name,int _age);// 有参构造函数的声明 Person(const Person p); // 复制构造函数的声明 ~Person(); // 析构函数的声明 // 提供get/set方法 void setName(string _name){ name _name; } string getName(){ return name; }void setAge(int _age){ age _age; }int getAge(){ return age; }void show(){ // 成员函数成员方法 cout[name:name, age:age]endl;}
};
int Person::cnt 0; // 初始cnt // 构造函数的类外实现
Person::Person(){// 无参构造 cnt ;cout构造函数Person()endl;
}
Person::Person(string _name,int _age){// 有参构造函数 cnt ;name _name;age _age;cout构造函数Person(string _name,int _age)endl;
}
Person::Person(const Person p){ // 复制构造函数 cnt ;name p.name;age p.age;cout构造函数Person(const Person p)endl;
}
Person::~Person(){ // 析构函数cnt --;
// 析构函数无法重载析构顺序与构造顺序相反 cout析构函数~Person()nameendl; coutPerson::cntendl;
}
int main(){
// coutcntend; // errorcoutPerson::cntendl; // 0Person p1; // 实例化对象调用无参构造函数
// p1.name AAA; // error
// p1.age 11;p1.setName(AAA);p1.setAge(11);p1.show();coutPerson::cntendl; // 1Person p2(BBB, 12);// 实例化对象调用有参构造函数 p2.show();coutPerson::cntendl; // 2Person p3(p1);p3.setName(CCC);p3.show(); coutPerson::cntendl; // 3coutp3.cntendl; // 3 return 0;
}