【发布时间】:2013-10-02 07:08:05
【问题描述】:
我知道以前似乎有人问过这个问题,但我环顾四周,static 方法对我不起作用。这是我的代码:
struct Customer {
public:
string get_name();
private:
string customer,first, last;
};
这里是我调用函数的地方:
void creation::new_account() {
Customer::get_name(); //line it gives the error on.
}
这是一些编译良好的代码示例。
struct Creation { public: string get_date(); private: string date; };
那我就这样称呼它
void Creation::new_account() { Creation::get_date();}
因此我很困惑为什么一个有效而另一个无效。
编辑:好的,我明白了,我刚刚意识到我在函数定义中调用了另一个结构的函数,该函数定义是不同类的一部分。我明白了,谢谢所有回答的人
【问题讨论】:
-
它是不是 静态的,你应该通过一个对象来调用它。
-
正如所指出的,您错过了将函数声明为静态的,因此错误。你能把原始代码放在“静态”不适合你的地方吗?
-
@NotAgain 确定是这个 'struct Customer { public: static string get_name();私人:字符串客户,第一,最后; };'
-
让我猜猜。您编写了一个静态函数 get_name() 并尝试返回字符串 customer、first 或 last 的内容。那是行不通的,因为静态成员函数只能访问类的静态数据。而且这三个字符串数据成员都不是静态的。
标签: c++ string function object