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

从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、普通的变量可以在构造函数的内部,通过赋值方式进行。当然这样效率不高。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值