【问题标题】:changing default value for class::variable without object更改没有对象的 class::variable 的默认值
【发布时间】:2020-03-14 15:29:23
【问题描述】:

我收到一个错误,我无法在没有对象的情况下设置分隔符。我不确定我哪里出错了。

ma​​in.cpp

using namespace sd;

int main() {
    Utilities::setDelimiter(',');
    return 0;
}

Utilities.h

namespace sd {
    class Utilities {

        static char m_delimiter;

        public:

        void setDelimiter(const char c) { m_delimiter = c;    }
        const char getDelimiter() const { return m_delimiter; }
    }
}

Utilities.cpp

namespace sd {

    char Utilities::m_delimiter = ',';

}

【问题讨论】:

标签: c++ function class namespaces


【解决方案1】:

您必须在对象实例上调用普通成员函数:

Utilities util;
util.setDelimiter(',');

在您的情况下,也许将其更改为静态方法?

static void setDelimiter(....)

【讨论】:

  • static void setDelimiter() 删除了我的编译错误...这是需要的,因为一个文件使用“,”而另一个文件使用“|”作为分隔符...两者都存储在一个对象类型 vectorinventory 的数组中
猜你喜欢
  • 2019-07-05
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 2020-05-30
  • 2020-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多