C++学习笔记从C到C++的升级(1)

    xiaoxiao2021-03-26  29

    从C到C++的升级(1) C:面向过程=数据+算法 C++ = C+面向对象思想 面向对象:对象+消息 C++优点:维护性,复用性,扩展性,灵活性 C++特点:封装    ,继承   ,多态    ,抽象
    从C到C++的升级: 1.声明定义 C++所有的变量都可以使用时才定义: for(int i = 0;i < 10 ; i++) { ... } 变量i在使用完成后自动释放,但是C语言不行 封装:主要用类来解决,类是对象的抽象,对象是类的实例 /**************** TEST.h **************/ #ifndef _TEST_H_ #define _TEST_H_ class Test //类名称,类名首字母应大写 { public: //三个是限定符,限定对象的访问权限 int GETx(); //类里的函数称为方法 private: int x_; //类里的变量称为属性(成员变量) protect: }; #endif /******************* TEST.cpp ****************/ #include "TEST.h" int Test::Getx() { return x_; } /****************** main.cpp **************/ #include <iostream> int main() { Test t; //用 Test 类实例一个名为 t 对象 int num = t.Getx(); cout << "num = " << num << endl; return 0; } public:在类外,通过对象,则可以访问。一般在此封装方法(成员函数); private:不能通过对象在类外访问,同时子类也不能访问。一般在此封装属性(成员变量); protect:子类能访问但外部对象不能访问 成员不要在类内初始化,可以通过成员函数对成员变量进行初始化 补充:成员变量初始化 1. 普通的变量:      一般不考虑啥效率的情况下 可以在构造函数中进行赋值。考虑一下效率的可以再构造函数的初始化列表中进行。 class Test { public: int data; public: Test(); //构造函数 }; /***********************************************/ Test::Test( ):data(0) //初始化列表方式 { //data = 0; //赋值方式 }; 2.static 静态变量:       static变量属于类所有,而不属于类的对象,因此不管类被实例化了多少个对象,该变量都只有一个。在这种性质上理解,有点类似于全局变量的唯一性。 class Test { public: static int sum; public: Test(); }; /****************************************/ int Test::sum=0; //类外进行初始化 3.const 常量变量:      const常量需要在声明的时候即初始化。因此需要在变量创建的时候进行初始化。一般采用在构造函数的初始化列表中进行。 class Test { public: const int max; public: Test(); }; Test::Test():max(100) { } 总结起来,可以初始化的情况有如下四个地方: 1、在类的定义中进行的,只有const 且 static 且 integral 的变量。 2、在类的构造函数初始化列表中, 包括const对象和Reference对象。 3、在类的定义之外初始化的,包括static变量。因为它是属于类的唯一变量。 4、普通的变量可以在构造函数的内部,通过赋值方式进行。当然这样效率不高。
    转载请注明原文地址: https://ju.6miu.com/read-350228.html

    最新回复(0)