定义: class 类名 {}
成员修饰符:
public 公有的 private 类内部 protected 类内,类的子类
friend 定义友元 类内部属性方法对定义的友元可见
friend void 方法名()
friend class 类名;
成员函数:
构造函数
析构函数(只有一个,没有参数)
拷贝函数
class a {
public:
int a;
int b;
std::string c;
// 初期值的顺序是从后到前 先给b 初期化然后用b的值给a 初期化
a( int c):a(b),b(10){
a = c;
}
}
构造函数的初期化
a temp(2);
a* tem = new a(2);
特殊的类结构体 struct
struct person {
std::string name;
int age;
}
结构体初期化
person per = {"xiaoming",2}
person per;
per.name = "xiaoming";
per.age = 2;
数组的
char a[12] = {1,1,1}
char a[12];
a[0] = 1;
a[1] = 1;
memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的;
包含在<[string.h]头文件中,可以用它对一片内存空间逐字节进行初始化;
原型为 :
void *memset(void *s, int v, [size_t]
这里s可以是数组名,也可以是指向某一[内在空间]的指针;
v为要填充的值;
n为要填充的字节数;
struct data
{
char num[100];
char name[100];
int n;
};
struct data a, b[10];
memset( &a, 0, sizeof(a) ); //注意第一个参数是指针类型,a不是指针变量,要加&
memset( b, 0, sizeof(b) ); //b是数组名,就是指针类型,不需要加&
malloc 和 new new会触发构造函数 而malloc 不会触发构造函数
free 和 delete delete会触发析构函数而free 不会触发析构函数
常量 const int a = 10
常函数 const 不能修改数据成员,只可以使用 例如打印功能的函数 只能用
void getName() const {
// a = 10 不行改变
}
常对象 只能调用常函数
const 对象名 变量名
静态数据成员
类外 初期化
class persion{
static int bb;
}
persion::bb = 10;
拷贝函数
class name{
name(){
// 构造函数
}
name(const name& a ){
// 拷贝函数
}
}
name namea ; // 执行构造函数
name nameb = a; // 不执行构造函数,执行拷贝函数
内联函数 inline
inline void fun(){
}
内联函数和常规函数比较编译的时候把代码复制到执行位置,代码量大。通常函数是固定得一段代码执行的时候跳转过去执行执行效率比内联函数低。