美文网首页
[163]1.1关于c++类声明的记录【GeekBand】

[163]1.1关于c++类声明的记录【GeekBand】

作者: EAdeBG | 来源:发表于2016-05-12 17:49 被阅读0次

    //C++微专业  第一周笔记

    //以下点多来自 《C++ Primer Plus 》第6版

    1. C++程序组成 .h + .cpp + .h(STL) ;

        (1)头文件的包含

           #include <iostream>  ...  用于标准库头文件

           #include  "xxx.h"   ...  用于用户自定义的头文件

        (2)自定义头文件

    #ifndef _A_

    #define _A_

    class A

    {

    .......

    };    //  ";" 结尾

    #endif

    2.通过  类  使用数据:

    class complex

    {

    private:                  //  数据通常置为 private 不允许外部修改

    double a, b;

    public:

    double real() const {    return a; };

    };

    ---------

    {

    complex s1

    cout << s1.real();  //not  cout << s1.a;  / 体现类对数据的封装

    }

    3.关于类的构造函数

      (1) 通常情况下,构造函数声明 位于类声明的公有部分;

      (2) 构造函数的参数名 不能与 类成员名冲突;

      (3) 使用构造函数:1、显式调用: Type t = Type{ 1, 2, 3 }; , 2、隐式调用:Type t( 1, 2, 3 ); , 3、Type *t = new Type{ 1, 2, 3 }; 。

      (4) 默认构造函数:

          1、没有参数,需在类声明外定义 Type::Type(){ ..... }

         2、所有参数都有默认值,声明时用初始化:Type( int a=0, int b=0, ... );

         3、隐式版本,C++自动提供。Type::Type() {  };  (1 和2 是对3的重载)

    默认构造函数只能有一个;通常提供对所有类成员做隐式初始化的默认构造函数。

    隐式调用默认构造函数时没有括号: Type t;

      (5) 复制构造函数:原型 Type(const Type &);

    新建对象并将其初始化为另一同类对象时调用复制构造函数:Type t1(t0); Type t2 = t0; Type t3 = Type(t0); Type * t4 = new Type(t0);

    默认复制构造函数将逐个复制非静态成员的值,

      (另,通常需重载赋值运算符,)

    4.返回对象

      成员函数或独立函数返回对象时的选择有:返回对象的引用、返回对象的const引用、返回const对象

        1、返回对象将调用复制构造函数,

        2、常见的返回非const对象的情况:重载赋值运算符、重载与cout一起使用的<<运算符

        3、若返回函数中创建的对象,应返回 对象 而不是 引用,例如重载的算术运算符,需要调用复制构造函数生成对象。

    相关文章

      网友评论

          本文标题:[163]1.1关于c++类声明的记录【GeekBand】

          本文链接:https://www.haomeiwen.com/subject/jsmsrttx.html