我刚遇到了以下问题:
#include "stdafx.h"
#include <string>
#include <iostream>
class transaction{
protected:
transaction(const std::string& log) { printLog(log); }
private:
void printLog(const std::string& log) const { std::cout << log << "\n"; }
};
class inTrans : public transaction {
public:
inTrans() : transaction( std::string("input") ) { }
};
class outTrans : public transaction {
public:
outTrans() : transaction{ std::string("output") } { } //This doesn't work
};
Visual Studio 2013标记了第一个"{"为红色,并显示以下错误:
"错误:通过“transaction”指针或对象无法访问声明于第7行的受保护函数“transaction::transaction(const std::string &log)”."
问题在于,我仍然能够编译文件,一切似乎都运行得很好。 那么为什么会出现这个奇怪的错误?