打印

关于构造函数

[复制链接]
749|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
baidudz|  楼主 | 2013-7-28 18:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
都说构造函数不返回值。但是下面这个程序是怎么回事?
#include <iostream>
#include <stdlib.h>

using namespace std;

class Candy
{
public:
    Candy() {};
    Candy( char* color ) { m_color = color; }
    char* candy_color() const { return m_color; }
    Candy& candy_color( char* color ) { m_color = color; return *this; }

private:
    char* m_color;
};

class Child
{
public:
    Child( char* name ) { m_name = name; }
    void eat( Candy sth ) const;

private:
    char* m_name;
};

void Child::eat( Candy sth ) const
{
    cout <<
        m_name <<
        " eat off a " <<
        sth.candy_color() <<
        " candy." << endl;
}

int main ()
{
    Child ch0( "Stan" );
    Candy ca0 = Candy( "red" );
    Candy ca1;
    Candy ca2 = Candy( "white" ).candy_color( "green" );
     
    ca1 = Candy( "yellow" );

    ch0.eat( ca0 );
    ch0.eat( ca1 );
    ch0.eat( ca2 );
    ch0.eat( Candy( "blue" ) );

    cout << Candy( "black" ).candy_color() << endl;

    system( "pause" );
    return 0;
}

相关帖子

沙发
pkat| | 2013-7-28 18:53 | 只看该作者
这是拷贝构造函数和赋值构造函数在起作用

使用特权

评论回复
板凳
gxgclg| | 2013-7-28 19:06 | 只看该作者
拷贝构造函数弄明白就清楚了,看看C++基础

使用特权

评论回复
地板
火箭球迷| | 2013-7-28 19:16 | 只看该作者
你自己可以去试验一下啊,自己写代码测测

使用特权

评论回复
5
yybj| | 2013-7-29 15:52 | 只看该作者
LZ需要弄清楚拷贝构造函数

使用特权

评论回复
6
xsgy123| | 2013-7-30 14:54 | 只看该作者
pkat 发表于 2013-7-28 18:53
这是拷贝构造函数和赋值构造函数在起作用

应该就是拷贝构造函数和赋值构造函数的问题

使用特权

评论回复
7
火箭球迷| | 2013-7-30 15:02 | 只看该作者
LZ需要进一步了解一下构造函数的基本知识

使用特权

评论回复
8
xsgy123| | 2013-7-30 19:11 | 只看该作者
是有点奇怪

使用特权

评论回复
9
无冕之王| | 2013-7-30 19:22 | 只看该作者
构造函数一般都是没有返回值的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

239

主题

2284

帖子

0

粉丝