> 文章列表 > C++ : class 类与对象

C++ : class 类与对象

C++ : class 类与对象

 

目录

        1.对象

        2.类的引入

        3.class类的定义

        4.类的访问限定符

        5.类的实例化


        1.对象

        C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题、
        C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。

        eg:一杯奶茶如何制作。

        在面向过程中,从杯子,接水,加奶加珍珠等一步一步完成的步骤。就是逐步解决问题、

        在面向对象中,只关注,买奶茶的人,卖奶茶的店员,这些对象之间的交互完成。

        2.类的引入

        在C语言中,struct 结构体 可以定义变量,我们用它实现数据结构的一些操作。

        而在C++中,struct 结构体不仅仅可以定义变量,还可以定义函数。

#include<iostream>
using namespace std;struct A
{int a;double b;
}struct B
{int add(int a,int b){return a+b;}int a;int b;
}int main()
{B b;int c = b.add(1,1);return 0;
}

3.class类的定义

         

class className
{
// 类体:由成员函数和成员变量组成
}; // 一定要注意后面的分号

class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。
类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数。
 两中定义方法

        1.类的声明和定义全放在 类内。需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理

        

#include<iostream>
using namespace std;class A
{public:int add(int a,intb){return a+b;}public:int a;int b;
}int main()
{return 0;
}

 2. 类的声明和定义分开写,声明放在.h头文件中,定义放在.cpp文件中。

在cpp中,需要加上类名进行访问。

  xxx::yy

xxx为类名 yy为函数名

#include<iostream>
using namespace std;//假设头文件
class A
{
public:void B(int a);public:int a;
}//cppA::B(int a)
{;
}int main()
{return 0;
}

4.类的访问限定符

C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。

三种访问限定符: 1.public 公有  2. protected 保护    3.. private 私有

        1. public修饰的成员在类外可以直接被访问
        2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
        3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
        4. 如果后面没有访问限定符,作用域就到 } 即类结束。
        5. class的默认访问权限为private,struct为public

#include<iostream>
using namespace std;class A
{public:....protected:.... private:.... 
}int main()
{return 0;
}

5.类的实例化

        用类类型创建对象的过程,称为类的实例化,如同struck的实例化。

        类的声明如同图纸,实例化如同拿着图纸造房子。

        一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量
        

class A
{...;
}int main()
{A b;...return 0;
}