一、结构体/类的定义和实现分离,代码可读性更强(非必须)
//xxx.h头文件
struct Test
{
int x;
int y;
int z;
void Init(int x,int y,int z);
void Function1();
void Function2();
void Function3();
}
//xxx.cpp
#include<stdio.h>
#include"structure.h"
void Test::Init(int x, int y, int z)
{
this->x = x;
this->y = y;
this->z = z;
}
void Test::Function1()
{
printf("Function1:%x\n", x);
}
void Test::Function2()
{
printf("Function1:%x\n", y);
}
void Test::Function3()
{
printf("Function3:%x\n", z);
}
特别说明:
xxx.h只是一个文件,可以是任何的后缀名;
#include " "/<>的作用只是把里面的内容复制过来;
二、public private的使用
public:这里的成员哪里都可以使用,被公有继承的时候仍然能被子类对象调用,但被私有继承的时候只能在原类定义中使用;一旦发布成为public的成员是不能改名字的;
private的意思是,这个成员只用于内部使用,不要在其他的地方使用.
总结:
1、对外提供的函数或变量,发布成为public的,不能随意改动;
2、可能会改动的函数或变量,定义成private的,这样编译器会在使用的时候检测;
3、只有结构体内部的函数才可以访问private的成员;
4、public/private可以修饰函数,也可以修饰变量;
三、private声明的成员也并非不可访问
-
通过指针的加减可以实现private成员的访问
因为private仅仅是权限控制,在内存上的存储和public修饰的时候是一样的,只是编译器赋予权限不同;
-
一般来说:
- private修饰的成员与普通的成员没有区别,只是编译器会检测;
- private修饰的成员只要自己的其他成员才能访问;
四:class&struct
权限区别:编译器默认class中的成员为private 而struct中的成员为public;
继承区别:class默认是私有继承,struct默认公有继承;class继承时若不想改变基类成员属性,选择public继承;