更多点子:c++—目录索引(知识小渠道)
面向对象程序设计(OOP):是一种程序设计型,也是一种程序开发的方法,对象指的是类的实例,将对象作为程序的基本单元,将程序和数据封装在里面,提高软件的重用性,灵活性和扩展性
类
类里面除了数据(成员变量),还有方法(成员函数)
面向对象的三大特性:封装,继承,多态
三种访问限定符:public,protected,private
**1.**public成员可从类外部直接访问,private/protected成员不能从类外部直接访问
2.每个限定符在类体内可使用多次,它的作用域是从该限定符出现到下一个限定符之前或类体结束前
3.类体内如果没有定义限定符,则认为私有的
4.类的访问限定符体现了面向对象的封装性
封装:数据跟方法都封装在类里,把不想要被别人看到的封装起来(私有)
这些访问限定符只是限定外面的,类里面是都可以访问的
类的作用域:
1.每个类都定义了自己的作用域,类的成员(成员函数/成员变量)都在类的这个作用域内,成员函数内可任意访问成员变量和其他成员函数
2.对象可通过 . 直接访问公有成员,指向对象的指针通过->也可以直接访问对象的公有成员
3.在类外定义成员,需要使用 :: 作用域解析符指明成员属于哪个类域
//类内定义成员函数
class Person
{
public:
vodi Display()
{
cout<<_name<<"-"<<_sex<<"-"<<_age<<end1;
}
public:
char* _name;
char* _sex;
cahr* _age;
};
//类外定义成员函数
class Person
{
public:
void Display();
public:
char* _name;
char* _sex;
cahr* _age;
};
void Person::Display()
{
cout<<_name<<"-"<<_sex<<"-"<<_age<<end1;
}
类实例化对象:
1.类只是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它
2.一个类可以实例化多个对象,实例化出的对象占用实际的物理空间存储类成员变量
3.相似的,类只是一个设计,实例化出的对象才能实际存储数据,占用物理空间
类对象存储:
每个对象的大小为类中所有成员变量大小之和,遵循内存对齐原则
内存对齐了以后,虽说浪费了空间,但是提高了效率
如果是空类,那它也有一个字节,不是为了存放东西,而是为了标识它
成员函数不占对象的空间,放在公共代码区