zoukankan      html  css  js  c++  java
  • 【C++】类与对象


    类的声明

    class Stock//某人持有的股票
    {
    private://私有成员,只能通过公用方法间接访问
    	std::string company;//股票所属公司
    	long shares;//持股数量
    	double share_value;//股票单价
    	double total_value;//股票总值
    	void set_tot(){total_value=shares*share_value;}//内联函数,计算股票总值
    public://公用方法,声明函数头即可
    	buy();
    	sell();
    	show();
    };
    
    //在类外定义内联函数,使用inline标识符
    inline void Stock::set_tot()
    {
        total_value=shares*share_value;
    }
    
    //在类外定义类方法
    void Stock::sell(long num,double price)
    {
        ...
    }
    

    类的初始化

    构造函数

    作用:在创建对象时自动对其初始化

    //定义
    Stock(const string &com,long n==0,double pr=0.0)
        //分别给company、shares、share_value提供值
        
    //调用
    Stock garment ("Furry Mason",50,2.5)
    
    //与new一起使用
    Stock *pstock = new Stock("Furry Mason",18,19.0)
    

    析构函数

    作用:清除对象,释放内存

    在没有显式声明而需要删除对象时,编译器会隐式地声明一个默认析构函数

    //声明
    Stock::~Stock()
    {
    	//可以为空
    	//可以添加提示性语句来提示其被调用
    }
    
    //调用
    ~Stock();
    

    this指针

    //一个用来比较两个对象中某成员值的大小的函数
    const Stock & topval(const Stock &s) const;
    //const Stock& 表明函数返回一个const引用
    //括号内的const 表明不会修改被显式访问的对象
    //括号后的const 表明不会修改被隐式访问的对象
    
    //调用
    top=stock1.topval(stock2);
    top=stock2.topval(stock1);
    //两种调用等价,top会被赋值为股价总值较高的对象
    //括号内的是被显式访问的对象,括号外的是被隐式访问的对象
    

    this 指针的使用场景

    const Stock & Stock::topval(const Stock& s) const
    {
        if(s.total_value>total_value) return s;
        else return *this;
    }
    

    头文件

    固定格式,防止该头文件被同一源文件多重调用

    #ifndef 标识
    #define 标识
    ……
    ……
    #endif
    

    标识的命名规则:

    1.使用头文件名称

    2.字母全大写,前后加下划线_ ,如果包含“.”,也替换成下划线_

    示例:#ifndef _STOCK10_H_

  • 相关阅读:
    saltstack学习
    linux命令学习(2):wc 命令
    linux命令学习(1):grep 命令
    Docker Compose—简化复杂容器应用的利器
    Docker-compose命令详解
    Python json数据写入csv json excel文件
    Centos 不重启 修改ulimit参数
    pip包管理工具 基本使用
    python 使用xpath解析含有命名空间(xmlns)的xml
    pyqt5 + pyinstaller 制作爬虫小程序
  • 原文地址:https://www.cnblogs.com/streamazure/p/12805682.html
Copyright © 2011-2022 走看看