`
隐形的翅膀
  • 浏览: 498292 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C++基础知识

 
阅读更多
1. typedef

自定义数据类型,就是给已有数据类型起一个别名,方便自己的阅读或者其它目的

typedef double area;
typedef int nature;

用新类型定义变量

area a;
nature b;

2. 枚举数据类型

enum game_result {win,lost,tie,cancel}

3. 结构体
结构体变量生命可以在结构体类型声明之后,二者可以同时进行
占内存大小可以用sizeof运算求出 sizeof(类型名或者变量名)
结构体变量可直接设置初值
struct student
{
int age;
char name[20];
}stu={20,"mike"}

stu.age

4. 有时需要把几个不同类型的变量共同使用一组内存单元,联合体

5. 函数值传递,void Swap(int a, int b);
6. 函数引用传递  void Swap(int& a,int& b)

7. 内联函数
   函数调用会降低程序的执行效率,内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用语句处,节省开销
   内联函数体内不能有FOR循环和SWITCH语句
   内联函数的定义必须出现在第一次被调用之前
   inline double CalArea(int a);
   隐式说明: 函数实现在.h中直接实现,显示说明,加inline关键字

   .h
   void ShowTime()
   {cout << this is a test<<endl;}

8. 带默认形参值的函数
   int add(int x=5,int y=6)
   add(),
   默认形参值必须按从右向左的顺序定义
   int add(int x,int y=5,int z=6); 正确
   int add(int x=1,int y=5,int z); 错误

   在相同的作用域内,默认行参值的说明应保持唯一
   int add(int x=1,int y=2);
   void main(void)
   {
      int add(int x=3,int y=4);
      add();
   }

9. 函数重载
10, 函数模板

11. 拷贝构造函数
    其作用是使用一个已经存在的对象去初始化一个新的对象
    class Point
    {
      public:
        Point(Point &p);
    }
    Point::Point(point &p)
    {
X=p.X;
        Y=P.Y;
    }


13. 类中的成员函数可以带默认值

14. 类中的内联成员函数

15. 组合类成员对象的初始化,在创建对象既要对本类的基本数据进行数据化,也要对内嵌对象的基本数据成员初始化
    类名::类名(形参表):内嵌对象1(形参表),内嵌对象2(形参表)
    初始化顺序
    1。 按声明的顺序,对内嵌对象进行初始化
    2.  执行本类构造函数的函数体
    Circle::Circle(float r):radius(r){}

16. c++类先声明再使用,如果两个类相互引用,就必须使用前向引用声明
    class B;
    class A
    { public:
              void f(B b);
    }

17 如果类中没有构造函数,编译时会生成默认构造函数
   如果自定义构造函数有参数,则必须给出初始值

18. 类模板

19.  作用域
     a. 函数原型作用域:仅在函数体内有效
     b. 块作用域: 从声明处开始,到块的大括号结束为止
     c. 类作用域:在类中有效
     d. 文件作用域: 开始于声明点, 结束于文件末尾
      inti;
      void main(){...}

20. 可见性
     文件作用域>类作用域>块作用域

      a. 没有相互包含的作用域中,声明同名标志符互不影响
      b. 具有包含关系的作用域声明同名标志符,则外层标志符在内层不可见


21  静态生存周期:对象的生存期与程序的运行周期相同
    动态生存周期:动态生存周期诞生于声明点,终止于作用域结束时

22. 静态局部变量,具有全局寿命,局部可见,只在第一次进入函数时初始化
    void main(void)
    {
       static int a;
       void other(void) 声明函数原型,为调用做准备,并没有真正调用
       other(); a=4;
       ....
       other(); a=6;
    }
    void other(void)
    {
      static int a=2;
      a=a+2;
    }
23  类属性,静态数据成员对于任何对象实例,它的值时相同的,是对象的共同特征
    访问: 类名::标识符 即使成员为私有静态成员,也可以访问
    对于普通函数成员的调用,必须通过对象名
    静态成员函数可以直接访问该类的静态数据和静态函数成员,而访问非静态数据成员,必须通过传递参数来访问

    static void A::f(A a){cout<<a.x;}
    对象名.静态成员函数 == 类名::静态成员函数

24. 友元函数可以通过对象名类访问类的私有和保护成员
    class Point
    {
      public:
           friend float fDist(Point &a,Point &b);
      private:
           int X,Y;
     }
     友元的实现在Point类外,在正常情况已经不能访问类的私有和保护成员,但声明为友元函数后可以
     float Fdist(Point &p1,Point &p2)
     {
          cout<<p1.X;
          cout<<p2,Y.
     }

25. 友元类: 若A类为B类的友元类,则A类的所有成员函数都是B类的友元函数,都可以访问B类的私有和保护成员
    友元关系部能传递,B 为 A 的, C为B的,但C和A之间没有关系。
     友元关系式单向,A 为 B, 但B不一定为A

    class B
    {
        friend class A;
    }

26. 常引用所引用的对象不能被更新
    常引用声明

    const 类型说明符 & 引用名

    void display(const double& r)
    int main()
    {
       double d(9.5);
       diplay(d);
       return 0;
    }
    void display(const double& r)
    {
      常引用做形参,在函数中不能跟新R所引用的对象,对应的实参不会被破坏
    }

27. 常对象
    声明:
    类名 const 对象名
    常对象必须进行初始化,而且不能被更新.
    常对象对象只能调用其常成员函数,而不能调用其它成员函数
    A const a(3,4);

28. 常成员函数
    函数声明后 加 const
    类名 函数名(形参) const;
    class B{ pulic: void pirnt() const;}
    常成员函数不能更新对象的数据成员,也不能访问非常成员函数

29. 常数据成员
    const int a;
    static const int t;
    任何函数都不能跟新常数据成员,只能通过初始化列表构造函数类获得初值
分享到:
评论

相关推荐

    C++基础知识总结

    ### C++基础知识总结 #### 一、C++数据和变量的类型及变量作用域 **1. 基本的内置类型** C++提供了一系列基本的内置数据类型,用于存储不同种类的数据。以下是一些常见的类型及其特点: - **布尔型 (`bool`)**:...

    c++ 基础知识手册

    以下是一些C++基础知识的详细介绍: 1. **变量与数据类型**:在C++中,变量是存储数据的容器。每种变量都有特定的数据类型,如整型(int)、浮点型(float或double)、字符型(char)和布尔型(bool)。声明变量时需指定其...

    c++基础知识(面试常见问题)

    C\c++基础知识,面试常见问题 C\c++基础知识,面试常见问题

    C++基础知识课件学习

    C++基础知识介绍,清楚简单明了,很容易进行记忆与学习

    C++ 基础知识 C++ 基础知识

    在学习C++基础知识时,你需要掌握以下几个关键点: 1. **基础语法**:C++的基础语法与C语言相似,包括变量声明、数据类型(如int、char、float等)、运算符(如算术运算符、比较运算符、逻辑运算符等)、流程控制...

    C++基础知识总结入门级

    "C++基础知识总结入门级"这个主题涵盖了初学者需要掌握的关键概念,让我们一一展开讨论。 首先,C++的IO系统是程序与用户交互的基础。`C++的IO.txt`可能包含关于iostream库的内容,如cin和cout用于标准输入输出,...

    c++基础知识chm文件

    C++基础知识.chm文件提供了详细的C++教程,包括各个主题的索引,对于学习者来说是非常有价值的参考资料。 理解并掌握这些C++基础知识是成为熟练C++程序员的关键步骤。通过深入学习和实践,你可以逐步掌握这个强大...

    编程语言C++基础知识课件

    C++是一种强大的、通用的编程语言,由Bjarne Stroustrup在1979年设计并开发,...这份"编程语言C++基础知识课件"将引导你逐步掌握这个强大语言的关键概念,无论你是初学者还是有一定经验的开发者,都将从中受益匪浅。

    C++基础知识讲义v1

    《C++基础知识讲义v1》是一份专为初学者设计的C++教程,涵盖了C++编程语言的基础概念和重要特性。这份讲义通过一系列的PPT文件,深入浅出地讲解了C++的核心知识,旨在帮助学习者快速掌握这门强大的编程语言。 1. **...

    C++基础入门.pdf

    C++是一种功能强大且灵活的编程语言,本文档旨在为读者提供一个基本的C++基础知识入门指南,包括创建项目、编写代码、运行程序、注释、变量、常量、关键字、标识符命名规则和数据类型等方面的知识点。 1. 创建项目...

    C++基础知识讲义v2

    这份"C++基础知识讲义v2"是一份专为初学者和初级C++讲师设计的学习资料,涵盖了C++的基础概念和关键特性。 1. **编程入门**(c++基礎知識1編程入門.pps):这部分通常会介绍C++的历史、基本语法,如变量声明、数据...

    涵盖C++ Primer 5th、 effective C++ 、 STL api和demos C++ 基础知识与理论等

    涵盖C++ Primer 5th、 effective C++ 、 STL api和demos C++ 基础知识与理论、 智能指针、C++11、 Git教程 Linux命令 Unix操作系统(进程、线程、内存管理、信号)计算机网络、 数据结构(排序、查找)、数据库、、...

    c++基础知识

    本压缩包文件“c++基础知识.chm”提供了一个全面的学习C++基础知识的资源,对于初学者和有经验的程序员来说都是宝贵的参考资料。 首先,C++的基础知识包括语法和概念,这是理解和编写C++程序的基础。语法方面,C++...

    C++基础知识.rar

    这个名为"C++基础知识.rar"的压缩包文件似乎是一个针对初学者的C++入门教程,旨在帮助学习者掌握C++的基础概念和编程技巧。 在C++的基础知识中,首先会介绍C++的历史和其与其他编程语言的关系,然后逐步深入到语言...

    C++基础知识测试&答案.rar

    这个名为"C++基础知识测试&答案.rar"的压缩包文件包含了两份文档,分别是"C++基础知识测试答案.doc"和"C++基础知识测试.doc",它们旨在帮助学习者检验和巩固C++的基础知识。 在"C++基础知识测试.doc"中,你可能会...

    C++基础知识.doc

    C++基础知识 C++基础知识是C++入门者和面试C++工程师岗位前的必备知识点总结。它涵盖了语法语义、STL、排序算法等面试常问的知识点。 一、面向对象的程序设计思想 面向对象的程序设计思想是把数据结构和对数据...

    c++基础知识电子书

    本电子书“C++基础知识”旨在为初学者提供一个全面且实用的C++学习资源,帮助他们从零开始掌握这门语言。 C++起源于C语言,由Bjarne Stroustrup在1983年为了增加面向对象的特性而设计。它不仅继承了C语言的高效和...

Global site tag (gtag.js) - Google Analytics