10-类和对象

14 篇文章 0 订阅
11 篇文章 0 订阅

struct和class的区别
struct的默认成员权限是public
class的默认成员权限是private

#include <iostream>
using namespace std;

class Person {
	// 成员变量(属性)
	int age;

	// 成员函数(方法)
	void run() {
		cout << "Person::run()" << endl;
	}
};

// class
struct Person {
	// 成员变量(属性)
	int m_age;

	// 成员函数(方法)
	void run() {
		cout << "Person::run() - " << m_age << endl;
	}
};

void test() {
	// Java\JS
	// Person person = new Person();

	// OC
	// Person *person = [Person new];

	// 利用类创建对象
	Person person;
	person.m_age = 20;
	person.run();

	Person *p = &person;
	p->m_age = 40;
	p->run();
//代码中person对象、p指针的内存都是在函数的栈空间,自动分配和回收的
	Person person1;
	person1.m_age = 10;

	Person person2;
	person2.m_age = 20;

	Person person3;
	person3.m_age = 30;
}

class Car {
public:
	int m_price;

	void run() {
		cout << "Car::run() " << m_price << endl;
	}
};

int main() {
	// mov         dword ptr [ebp-8],0Ah
	// mov         dword ptr [ebp-8],0Ah
	Car car;
	car.m_price = 10;
	car.run(); // call 函数地址


	Car car2;
	car2.m_price = 20;
	car2.run(); // call 函数地址


	Car car3;
	car3.m_price = 30;
	car3.run(); // call 函数地址

	getchar();
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值