#include <iostream> //输入输出的头文件
using namespace std;
//#define 宏常量
#define Day 7
//const修饰的变量也为常量
//int addd(int a,int b);//函数的声明
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);
cout<<"m_a="<<p.m_a<<endl;
cout<<"m_a="<<p.m_b<<endl;
cout<<"m_a="<<p.m_c<<endl;
}
int main()
{
test01();
return 0;
}
以上是 初始化列表初始化属性
1、静态成员
静态成员变量:1、所有对象共享一份数据。2、在编译阶段分配内存。3、类内声明,类外初始化。
class person
{
//传统的初始化操作
public:
// 静态成员变量:1、所有对象共享一份数据。2、在编译阶段分配内存。3、类内声明,类外初始化。
static int m_a;
};
int person::m_a=100;//类外初始化。
静态成员函数:1、所有对象共享同一个函数。2、静态成员函数只能访问静态成员变量。
静态变量两种访问方式
1、通过对象进行访问。
person p;
cout<<p.m_a<<endl;
2、通过类名进行访问
cout<<person::m_a<<endl;
void test02()
{
//静态变量两种访问方式
//1、通过对象进行访问。
person p;
cout<<p.m_a<<endl;
//2、通过类名进行访问
cout<<person::m_a<<endl;
}
静态成员函数:1、所有对象共享同一个函数。2、静态成员函数只能访问静态成员变量。
//静态成员函数:1、所有对象共享同一个函数。2、静态成员函数只能访问静态成员变量。
class person
{
public:
//静态成员函数
static void func()
{
cout<<"func调用"<<endl;
}
};
静态成员函数两种访问方式
1、通过对象进行访问。
2、通过类名进行访问
//静态成员函数:1、所有对象共享同一个函数。2、静态成员函数只能访问静态成员变量。
class person
{
public:
//静态成员函数
static void func()
{
cout<<"func调用"<<endl;
}
};
void test001()
{
//1、通过对象进行访问。
person p;
p.func();
//2、通过类名进行访问
person::func();
}
静态成员函数可以调用静态成员变量,但是不可以访问非静态成员变量
class person
{
public:
//静态成员函数
static void func()
{
m_a=100;//静态成员函数可以调用静态成员变量,但是不可以访问非静态成员变量
cout<<"static 调用"<<endl;
}
static int m_a;
int m_b;
};
int person::m_a=100;//静态成员变量初始化