打印指向对象的指针

时间:2016-11-22 22:55:46

标签: c++

我有一个数字类,在main方法中我创建了一个指向数字对象的指针。该对象有一个字符串字段,其中包含数字的值作为字符串。我正在尝试用cout打印该字符串值,但我一直在失败。我是初学者,我深陷重载<<操作员和东西,但我找不到打印指针的方式,谢谢..

Number *n1 = new Number();
cout<<*n1;            // That must print the string value

编辑:我可以编写一个函数来打印一个数字对象,但这不是交易。我也熟悉number-&gt;值语法。我想我需要做的是重载&lt;&lt; operator用于打印指向对象的指针

2 个答案:

答案 0 :(得分:2)

在c ++中你可以重载所有类型的运算符等。+,++, - , - ,... 你也可以重载&lt;&lt;做任何你想做的事。

对于您的示例,您可以执行以下操作:

在课堂定义中

class Number
{
public:
    std::string value;
    friend ostream& operator<<(ostream& os, const Number& num);
}

然后根据需要定义函数。 例如:

ostream& operator<<(ostream& os, const Number& num)
{
    os << num.value;
    return os;
}

在该运算符之后&lt;&lt;类Number中的对象将打印保存在字符串值中的值。

有关更多信息,请参阅:http://en.cppreference.com/w/cpp/language/operators

答案 1 :(得分:0)

假设您的Number课程如此:

class Number
{
public:
    std::string value;
};

然后你可以用以下方式打印价值:

Number* n1 = new Number();
std::cout << n1->value;