C++

数据类型:

Type

Meaning

Minimum Size

 

C++: Arithmetic Types

bool

boolean

NA

char

character

8 bits

wchar_t

wide character

16 bits

short

short integer

16 bits

int

integer

16 bits

long

long integer

32 bits

float

single-precision floating-point

6 significant digits

double

double-precision floating-point

10 significant digits

long double

extended-precision floating-point

10 significant digits

C++_第1张图片

数组:

C++_第2张图片

string:

C++_第3张图片

被string声明的是对象.

C++_第4张图片

跟C差别较大,尽量使用string.

 结构:

C++_第5张图片

C++_第6张图片

结构数组:

C++_第7张图片

C++_第8张图片

C++_第9张图片

C++_第10张图片

枚举:

指针:

 

 

 

 

C++_第11张图片

 

 

 

 

1.虚函数:基类中定义virtual函数,被两个类分别继承和重写,在通过基类指针调用,不同的实体指针出不同的结果.

(1) 虚函数在重新定义时参数的个数和类型必须和基类中的虚函数完全匹配,这

一点和函数重载完全不同。

(2) 只有通过基类指针才能实现虚函数的多态性,若虚函数的调用是普通方式来

进行的,则不能实现其多态性。

(3) 如果不使用new来创建相应的派生类对象指针,也可使用通过&运算符来获取

对象的地址。

(4) 虚函数必须是类的一个成员函数,不能是友元函数,也不能是静态的成员函

数。

           (5) 可把析构函数定义为虚函数,但不能将构造函数定义为虚函数。 

C++的虚函数就相当于java的普通函数,被继承后可以根据实例调用对应的函数。

       C++                 Java
  虚函数 -------- 普通函数
  纯虚函数 -------- 抽象函数
  抽象类 -------- 抽象类

基类成员函数的二义性:相当于近亲(继承统一先类)结婚,后代的某个先类基因("父母"都有),无法确定是从哪方继承过来。

可以通过::直接指定希望从哪方继承而来.

2.纯虚函数:

class CTriangle:public CShape

{

public:

CTriangle(float h, float w)

{ H = h; W = w; }

float area() // 在派生类定义纯虚函数的具体实现代码

{ return (float)(H * W * 0.5); }

private:

float H, W;

};

运算符重载

<函数类型><类名>::operator <重载的运算符>(<形参表>)

{ } // 函数体

CComplex CComplex::operator + (CComplex &c)

CCounter CCounter::operator ++()

CCounter CComplex::operator ++(int);

转换函数:

CMoney::operator string ()

 

Vector:

string str[]={"Alex","John","Robert"};
    // empty vector object
    vector v1;
    // creates vector with 10 empty elements
    vector v2(10);
    // creates vector with 10 elements,
    // and assign value 0 for each
    vector v3(10,0);
    // creates vector and assigns
    // values from string array
    vector v4(str+0,str+3);
    vector::iterator sIt = v4.begin();
    while ( sIt != v4.end() )
        cout << *sIt++ << " ";
    cout << endl;

Deque:

string str[]={"Alex","John","Robert"};
    
    // empty deque object
    deque d1;
    
    // creates deque with 10 empty elements
    deque d2(10);
    
    // creates deque with 10 elements,
    // and assign value 0 for each
    deque d3(10,0);
    
    // creates deque and assigns
    // values from string array
    deque d4(str+0,str+3);
    deque::iterator sIt = d4.begin();
    while ( sIt != d4.end() )
        cout << *sIt++ << " ";
    cout << endl;

List:

    int ary[]={1,2,3,4,5};
    list l;

    // assign to l the contains of ary
    l.assign(ary,ary+5);

    copy(l.begin(),l.end(),
            ostream_iterator(cout," "));
    cout << endl;

    // replace l for 3 copies of 100
    l.assign(3,100);

    copy(l.begin(),l.end(),
            ostream_iterator(cout," "));
    cout << endl;

typedef Member M;
    list l;

    l.push_back(M("Robert",60000));
    l.push_back(M("Linda",75000));

    list::iterator It = l.begin();
    cout << "Entire list:" << endl;

    while ( It != l.end() )
        (It++)->print();
    cout << endl;

Set:

Multiset:

Map:

 

 

你可能感兴趣的:(C++)