复习c++

来源:互联网 发布:b超双顶径数据分男女 编辑:程序博客网 时间:2024/06/06 06:32

1.hello world

#include <cstdio>int main() {  printf("Hello World! \n");  return 0;}

#include <iostream>int main() {  std::cout << "Hello World!" << std::endl;//cout, endl, using namespace std  return 0;}

g++ Hello1.cpp -o Hello1

2.librairie standard c++

  • librairie standard C
  • librairie de flux d'entree-sortie
  • STL(standard template library)
  • conteneurs
  • foncteurs
  • iterateurs
  • algorithme

3. class

由变量和方法组成

#include <cmath>class Sinusoide {  private:    double myA, myB;//variable  public://:和public之间没有空格    Sinusoide(double aA, double aB) : myA(aA), myB(aB) {}//initiation constructeur后面没有分号    double eval(double x) {      return myA*std::sin(x) + myB*std::cos(x);    }//methods};
以;结尾

4.constructeur

和class同名

无返回类型

不存在时,编译器以任意值初始化类

可以有一串参数

在fonction之前,以参数初始化内部变量,以声明的顺序输入

5.在栈pile里初始化

double x(5.0); //ou double x = 5.0;Sinusoide s(2.0, 3.0); //ou Sinusoide s = Sinusoide(2.0, 3.0);

6.在堆tas里初始化

double* xPtr = new double(5);Sinusoide* sPtr = new Sinusoide(2.0, 3.0);

return sPtr->eval(x); //evalue la sinusoide en x
7.desctruction

栈里的变量可以自动销毁

堆里的变量需要人为释放

delete sPtr; //libère la mémoire allouée
8.继承(可继承多个类)

扩展, 多态

class BaseClass {  public:    void method() {      std::cout << "from Base" << std::endl;    }};

class DerivedClass : public BaseClass {  public:    void method() {      std::cout << "from Derived" << std::endl;    }};
int main() {  BaseClass* ptr = new DerivedClass();  ptr->method();}
输出 from base, 如果在Baseclass的method前加virtual,则可以激活动态链接,输出from derived

9.class abstraite

class FonctionDeRDansR {public:  virtual double eval(double x) = 0;//纯虚函数};
10.模板template

template <class T>T min (T a, T b) {  return !(b<a)?a:b;}
11.符号重载

0 0
原创粉丝点击