c++ - 运算符不使用类对象?

标签 c++ class object operators

我正在尝试学习 C++,并且正在创建小程序来测试它的工作原理。我编写了这段代码,但由于某种原因,我在编译时遇到了这个错误:

binary '>>': no operator found which takes a left-hand operand of type 'std::istream' (or there is no acceptable conversion)

如果有人能帮我解决这个问题,我将不胜感激。

代码:

#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <string>
#include "logo.h"

class classTest
{
    public:
        void setName(std::string x)
        {
            name = x;
        }

        std::string getName()
        {
            return name;
        }
    private:
        std::string name;
};

int main()
{
    SetConsoleTitle("plains.exe");

    displayLogo();

    std::cout << "Please enter your name: ";

    classTest testObject;
    std::cin >> testObject.setName;

    std::cout << "Your name is " << testObject.getName() << "." << std::endl;

    return 0;
}

最佳答案

setName 是一个函数。所以,你不能使用 cin >> testObject.setName。你可以这样做-

string name;
cin >> name;
testObject.setName(name);

或使用 Operator Overloading重载 >>>

关于c++ - 运算符不使用类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46842499/

相关文章:

c++ - C++ 中的类到类数据类型转换

函数中的 JavaScript 原型(prototype)委托(delegate)

javascript - 如果 key 与 lodash、vanilla js 或 d3 相等,则合并两个 javascript 对象

r - 关于R中保存以var的对象命名的数据

c++ - 类模板中文字运算符的Friend声明

c++ - 将 protected 析构函数虚拟化是否有用?

c++ - Boost.Locale 是官方 boost 版本的一部分吗?

c++ - C++ 中的内存测量

c++ - 如何在 C++ 中的多个对象中使用通用值?

javascript - Jquery 在类选择器中添加+或减号