//初始化列表

本文详细讲解了C++中的构造函数使用、初始化列表优化、类成员变量和静态成员的特性,包括实例初始化、成员函数访问和静态成员函数的调用。涵盖了类的实例化、成员变量类型及静态成员的区分,适合初学者理解面向对象编程概念。
摘要由CSDN通过智能技术生成

class person

{

public:

/*传统初始化操作

person(int a, int b, int c)

{

m_a = a;

m_b = b;

m_c = c;

}*/

//初始化列表初始化属性

person(int a,int b,int c)  :m_a(a), m_b(b), m_c(c)

{

}

int m_a;

int m_b;

int m_c;

};

void test01()

{

//person p(10, 20, 30);

person p(30,20,10);

cout << "m_a=" << p.m_a << endl;

cout << "m_b=" << p.m_b << endl;

cout << "m_c=" << p.m_c << endl;

}

int main()

{

test01();

类作为成员变量

class phone

{

public:

phone(string pname)

{

m_pnname = pname;

}

string m_pnname;

};

class person

{

public:

//phone m_phone = pname  隐式转换法

person(string name, string pnname) :m_name(name), m_phone(pnname)

{

}

string m_name;

phone m_phone;

};

//当其他类对象作为本类成员,构造时先构造其他类再构造本类,析构顺序相反

void test01()

{

person p("张三", "苹果max");//

cout << p.m_name << "拿了"<<p.m_phone.m_pnname << endl;

}

int main()

{

test01();

//静态成员函数

//所有对象共享同一个函数

//静态成员函数只能访问静态成员变量

class person

{

public:

//静态成员函数

static void func()

{

m_a = 100;//静态成员函数可以访问静态变量  公用的

//m_b = 200;报错,因为静态成员变量 不可以访问 非静态成员变量  无法区分到底是哪个对象的m_b属性

cout << "static void func调用" << endl;

}

static int m_a;//静态成员变量

int m_b;//非静态成员变量

//静态成员函数也是有访问权限的

private:

static void func2()

{

cout << "static void func2调用" << endl;

}

};

int person::m_a = 0;

//两种访问方式

void test01()

{

//1.通过对象来访问

person p;

p.func();

//2.通过类名来访问

person::func();

//person::func2();类外访问不到私有静态成员函数

}

int main()

{

test01();

//成员变量  和  成员函数  分开存储的

class person

{

int m_a;//非静态成员变量   属于类的对象上的 

static int m_b;//静态成员变量   不属于类的对象上

void func() {}//非静态成员函数   4  不属于类的对象上的

static void func2() {}//静态成员函数  不属于类的对象上的

};

int person::m_b = 0;

void test01()

{

person p;

//空对象占用内存空间:1

//c++编译器会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置 每一个空对象也应该有一个独一无二的内存地址

cout << "size of p=" << sizeof(p) << endl;

}

void test02()

{

person p;

cout << "size of p=" << sizeof(p) << endl;//4

}

int main()

{

test01();

test02();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值