美文网首页
CPP:02CPP的构造函数

CPP:02CPP的构造函数

作者: 放纵的卡尔 | 来源:发表于2020-07-08 01:56 被阅读0次

CPP02-CPP的构造函数

//
// Created by 87572 on 20/7/5.
//

#include "../include/StateTwo.h"

using namespace std;


/**
 *K1:在CPP中 ,struct可以包含函数.默认public. class默认private
 *
 */


ClassSpace::TwoPerson::TwoPerson() {
    cout << "person  init" << endl;
}


int ClassSpace::TwoPerson::getAge() {

    return ClassSpace::TwoPerson::age;
}


void ClassSpace::TwoPerson::setAge(int age) {

    this->age = age;

}


/**
 * K2:类的构造函数.
 * 1.分类:  构造函数和拷贝构造
 * 2.使用方法:
 *    1):括号法:  Person p(1);  Person(p2)
 *    2):显示调用: Person p=Person(1);
 *    3):隐式调用: Person p=100;
 *    4):匿名类:  Person(p)  注意: 匿名类会被立即回收.  而且没有变量接收的匿名类等价于: p这个对象.
 *
 *       Person p; 等价于  Person(p)
 *
 *
 *
 *      class StructUse{

        public:
            StructUse(){
                cout<<"no params"<<endl;
            }

            StructUse(const StructUse &p){

                cout<<"copy struct"<<endl;
            }

        };
 *
 */

/**
 *
 * K3:--------------------拷贝构造函数的细节注意点------------------------------
 *  *   ****:默认的拷贝构造类似结构体的struct p1=p2; 简单的值传递.
 *   如果没有StructUse(const StructUse &p)形式的拷贝构造函数,则默认使用这个
 *   如果写了StructUse(const StructUse &p).则使用这个.
 *
 *   拷贝函数的调用时机: 1.void testStruct(StructUse use)
 *                     2.Person p1=p2;
 *                     3.return Person; 此时编译器可能会优化,直接创建而不是使用拷贝.
 *
 */

/**
 *
 *K4:--------------------构造函数的规则--------------------------------
 * 1.默认一个无参和默认的拷贝构造函数.
 * 2.如果定义了拷贝构造函数或者其他构造函数,则默认的无参构造函数则没有了.
 * 3.如果没定义拷贝构造函数,则默认的拷贝构造函数一直存在.
 */


/**
 * K5:--------------参数初始化列表-------------------------------
 * 1.   对于需要初始化的类,可以这么初始化.
 * class FruitList {

            public:
                Apple apple;
                Orange orange;
            
                FruitList(int color) : apple(color),orange(color) {
                    cout << "init:---Fruit-----" << endl;
                }
            
                ~FruitList(){
                    cout<<"destroy:---friut---"<<endl;
                }
            
            };
 *
 *2.默认从上往下依次执行构造函数,销毁的时候则相反的顺序执行析构函数.
 *  只针对对象类型.指针类型则不会.
 *
 */

相关文章

  • CPP:02CPP的构造函数

    CPP02-CPP的构造函数

  • 2022-07-28【UE】Actor动态创建Component

    ue这里面,蓝图和cpp是两套运行顺序逻辑。首先是构造函数,cpp的构造函数是优于一切的,而蓝图的伪构造,其实是创...

  • ndk-C++基础进阶

    类的构造、析构、友元函数 Student.h Student.cpp test.cpp*

  • C++ 封装

    Teacher.h Teacher.cpp 初始化Teacher类 构造函数 和 析构函数

  • Cpp2 构造函数和析构函数

    Cpp2 构造函数和析构函数 什么是构造函数 总结特点: 与类名同名/没有返回值 创建对象的时候执行/主要用于初始...

  • C++11 线程管理

    1 线程启动 std::thread构造函数接受可调用对象启动线程,如下所示: 假设文件名为thread.cpp,...

  • JNI——C++基础一

    创建一个C++项目: 把头文件中构造函数和析构函数的具体实现放在cpp文件中,这里的public和private跟...

  • [cpp deep dive] 构造函数与explicit

    explicit explicit关键字只能修饰构造函数,其余地方不起作用. 单参数构造函数会起一个作用,即会令该...

  • C# 构造函数总结

    构造函数 构造函数分为:实例构造函数,静态构造函数,私有构造函数。 实例构造函数 1、构造函数的名字与类名相同。 ...

  • Flutter 6种构造函数详解

    Flutter有生成构造函数、默认构造函数、命名构造函数、重定向构造函数、常量构造函数、工厂构造函数 一.生成构造...

网友评论

      本文标题:CPP:02CPP的构造函数

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