1.
#include <iostream>
#include <string>using namespace std;
class Person{
private://私有
string name;//属性
int age;
public://公有
void set(string s,int a){
name=s;age=a;
}//把对属性的直接访问改为通过方法来访问
void sleep(){//方法
cout<<name<<"睡觉ing~~"<<endl;
}
void show(){
cout<<name<<"今年"<<age<<"岁!"<<endl;
}
};
int main(){
Person p1;//一个人就诞生了!
//p1.name ="武松";
p1.set("武松",20);
p1.sleep();//方法调用
Person p2;
//p2.name="金莲";
p2.set("金莲",17);
p2.sleep();
return 0;
}
2.
#include <iostream>
#include <string>
using namespace std;
class Person{
private:
int age;
string name;
public:
//构造函数
Person(){
cout<<"无参构造函数执行ing~~"<<endl;
age=0;name="无名";
}//无参构造函数
Person(string name,int age){
cout<<"执行了满参构造函数"<<endl;
this->name=name;
this->age=age;//this指针
//指针访问属性或者方法使用符号-> 的
}//满参构造函数
void show(){
cout<<name<<"今年"<<age<<"岁!"<<endl;
}
~Person(){//析构函数 这个函数不允许重载
cout<<"销毁"<<name<<endl;
}
};
int main(){
Person p1("武松",29);//
//Person* p2=new Person("金莲",18);//使用new来创建对象
p1.show();
//p2->show();
//delete(p2);
return 0;
}
3.
#include <iostream>
#include <string>
using namespace std;
class Emp{
private:
int age;
string name;
public:
Emp(){ age=0;name="";}
Emp(int age,string name){this->age=age;this->name=name;}
//overload
void eat(string food){
cout<<this->name<<"喜欢吃"<<food<<endl;
}
void eat(string s1,string s2){
cout<<name<<"不仅喜欢吃"<<s1<<",还喜欢吃"<<s2<<endl;
}
void eat(){
cout<<"没有东西,吃个毛线!"<<endl;
}
void show(){
cout<<"age:"<<age<<",name:"<<name<<endl;
}
};
int main(){
Emp e1(19,"张三");
Emp e2(20,"李四");
e1.eat("米饭");
e2.eat("米饭","面条");
e2.eat();
return 0;
}