【发布时间】:2018-03-29 07:14:29
【问题描述】:
我想将所有静态变量对象初始化为相同的值。我在prog1.h 中定义了一个类
namespace fal {
class read_f{
public:
static std::string ref_content, seq_content;
int read_fasta(int argc, char **argv);
};
}
我尝试在prog1.cpp中初始化它们
std::string fal::read_f::ref_content = seq_content = "";
但我得到undefined reference error。
当我尝试时
std::string fal::read_f::ref_content = "" ;
std::string fal::read_f::seq_content = "";
效果很好。
如何在一行中初始化?
【问题讨论】:
-
好吧,当你还没有声明 b 时,你也不能这样做 int a = b = 10
-
@JoshKisb 类中没有定义
a和b。 -
@AaghazHussain
std::string fal::read_f::ref_content = seq_content = "";没有定义seq_content(这是您问题的根源)。你的类只包含声明。 -
@AlgirdasPreidžius 你的意思是
std::string fal::read_f::ref_content , seq_content ; ref_content = seq_content = "";应该可以工作。 -
它们没有在类中声明。这就是为什么如果你尝试为它们分配一个值而不在全局中初始化你会得到错误,因为它们不存在
标签: c++ static initialization