• 十-----对象和类


    十-----对象和类

    1. 程序员使用私有成员函数来处理不属于公有接口的实现细节
    2. 内联函数定义部分加上inline,声明部分不需要
    3. 在OOP中,调用成员函数被称为发送消息 "send message"
    4. 自定义构造函数的参数名不能与类成员名相同,为了使得参数名更直观,通常在数据成员名前加前缀m_,或者加后缀_,以避免混乱
    5. 没有定义构造函数时,编译器会自动提供默认构造函数;但是一旦定义了非默认构造函数,就必须再手动定义一个默认构造函数
    6. 默认构造函数有两种定义方法,一种是无参,另一种是有参,但所有参数都有默认值。通常,不管有无参数,都应该用默认值初始化所有的参数。即无参的默认构造函数也应该在函数体内赋予数据成员默认值。两种定义方法不能同时使用
    //构造函数隐式与显示调用
    class food = class( "Ok",30,4.76 );
    class food( "Ok",30,4.76 );
    class *ptr = new class( "Ok",30,4.76 );
    
    //默认构造函数隐式与显示调用
    class good;
    class good = class( );
    class *pre = new class;
    
    1. 析构函数无参
    2. 如果构造函数使用了new,析构函数必须调用delete
    3. 只要类方法不修改调用对象,就应该申明为const
    void show( ) const;
    
    1. this指针
    const Stock & Stock :: topval ( const Stock & s ) const
    {
    	if (s.total_val > total_val)
    		return s;
    	else
    		return *this; 
    }
    //第一个const表示返回类型为const引用
    //第二个const表示函数不能修改显示调用的对象
    //第三个const表示函数不能修改隐式调用的对象
    
    1. 对象数组
    const int STKS = 3;
    Stock food [STKS] = {
    	Stock("NanoSmart", 12, 20.0),
    	Stock( ),
    	Stock("Monolithic Obelisks", 130, 3.25)
    };
    
    //访问
    food[0], food[1], food[2]
    
    1. 要使用作用域为类的常量,即常量由所有对象共享。
      直接在数据成员中定义const变量是不可行的,此时并没有实例化
      有两种方法,一:枚举; 二:static静态数据类型
    private:
    	enum{ ok = 100 };
    					
    private:
    	static const int ok = 100;
    
  • 相关阅读:
    xxx
    cdq分治入门--BZOJ1176: [Balkan2007]Mokia
    cdq分治入门--BZOJ3262: 陌上花开
    本月题量 171122晚-171222午
    cdq分治入门--BZOJ1492: [NOI2007]货币兑换Cash
    NOIP2017游记
    xx
    CF601D:Acyclic Organic Compounds
    LOJ#539. 「LibreOJ NOIP Round #1」旅游路线
    composer常用的一些命令参数说明
  • 原文地址:https://www.cnblogs.com/machine-lyc/p/9798031.html
Copyright © 2020-2023  润新知