C++类和对象

Posted 我是晓伍

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++类和对象相关的知识,希望对你有一定的参考价值。

  • C++中的结构体可以定义函数,但是c的结构体是不行的,因为在C++中我们把结构体也当作是类,这个类的默认访问权限是public的(为了兼容C)

  • 类的定义

 class Person
 
 	//类体:由成员变量和成员函数组成
 ;  //这里一定要由分号
  • 类的访问修饰限定符

    CPP中类的访问修饰限定符一共有三种,他们分别是public,protected和private,public修饰的成员在类内外都可以随便访问,而protected和private修饰的成员只能在类内访问。

  • 类的作用域

    类定义了一个新的作用域,其中包括了他的成员变量和成员函数,如果我们要指明某个东西是在哪个作用域内的,使用::符号,如下

    class Person
    
    public:
    	void print();
    private:
    	char m_name[20];
    	int m_age;
    ;
    
    void Person::print()  //指明类域
    
    	
    
    
  • 类的实例化

    我们可以把类想象成一个图纸,用这个图纸我们造出来一座座标准化的房子,这个房子就是对象,类创建对象的过程就称为类的实例化

这时候我们又引出了一个问题,如何取计算对象的大小?

实际上,对象中只存放成员变量,而成员函数则被存放在公共的代码段,因为如果成员函数也存放在对象内,我们知道只要是一个类实例化出来的对象,它的成员函数都是相同的,相同的东西一直重复制造,岂不是浪费非常多的空间,因此这个成员函数不存放在对象内,所以要计算对象大小只需要知道结构体字节对齐规则就行了,这个规则很多人写过了,这里不再赘叙。

  • this指针

    this指针一句话概括就是一个指向当前对象的指针,比如当成员变量的名字和传入的参数名字相同时,我们就可以使用this指针避免命名冲突,如下:

    class Person
    
    public:
    	Person(int age)
        
            this->age = age;   //避免传进来的age和我们的成员变量名字冲突
        
    private:
      	int age;
    ;
    

以上是关于C++类和对象的主要内容,如果未能解决你的问题,请参考以下文章

OC学习--类和对象的关系

3.1类和对象

类和对象

类和对象的关系

Python类和对象

C++的基础学习