类的参数自定义构成函数

#include <iostream>
#include <Windows.h>
#include <string>

using namespace std;

//定义一个“人类”
class Human {
public: //公有的,对外的
	//手动的构成函数
	/*Human(){}  ///这个就是手动构成的函数,内部法*/
	//Human();
	//Human(int age, int salary, string name);  //可以带参数
	Human(int age, int salary);  //可以带参数
	void eat();  //方法,成员函数
		
	           
	void sleep();
	void play();   //根据需求来,对外的
/*	void work() {
		//内联函数
	}*/
	void work();
	string getName();
	int getAge();
	int getSalary();

private: //私有的,内部的
	string name;
	int age = 18; //类内初始值,C++11才支持
	int salary;

};

void Human::eat(){  //加一个类的名字和两个冒号,限制它是类的方法
	cout << "吃炸鸡,喝啤酒!" << endl;
}

void Human::sleep() {
	cout << "我正在睡觉!" << endl;
}
void Human::play() {
	cout << "我在K歌!" << endl;
}
void Human::work() {
	cout << "我在工作!" << endl;
}

string Human::getName() {   //目的是搞封装,保护隐私
	return name;
}

int Human::getAge() {
	return age;
}
int Human::getSalary() {
	return salary;
}
/*
Human::Human() {   //手动构成函数,外部的。这是自动会调用
	name = "无名";
	age = 24;
	salary = 40000;
}
*/
Human::Human(int age, int salary) {  //自定义带参数的构成函数
	cout << "调用这个函数" << endl;
	this->age = age;
	this->salary = salary;
	this->name = "无名";
}



int main(void) {
	

	Human h2(25,28000);//调用自定义的构造函数
	cout << h2.getAge() << endl;
	cout << h2.getSalary() << endl;


/*
	//使用方法
	h1.eat();
	h1.play();
	h1.sleep();
*/
	/*
	//或者指针方法
	Human *p;
	p = &h1;
	p->eat();
	p->play();
	p->sleep();

	/*cout << h1.age << endl;   */     //非法的,不能直接访问private里面的
	/*
	cout << h1.getAge() << endl;
	*/
	//使用类Human创建一个对象zhangsan
	//创建一个对象时必须调用构成函数
	/*Human zhangsan;   //此时,调用的构造函数就是“默认构造函数”,当找不到时,就会自动生成一个“合成构造函数”
	cout << zhangsan.getAge() << endl;
	cout << zhangsan.getSalary() << endl;
	cout << zhangsan.getName() << endl;
	*/
	system("pause");
	return 0;
}

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值