c++ - 在 C++ 中将对象创建为私有(private)类变量

标签 c++ class oop object

在我的程序中,我想从 OpenCV 库中初始化一个对象作为我自己对象的一部分。但是,每当我初始化它时,我都会收到此错误:

error: expected parameter declarator

如果我不使用它的构造函数初始化对象,它会起作用,但我需要这样做。此外,我希望以后能够使用该对象的方法用新数据对其进行修改。下面是给我错误的代码类型的一个非常简单的示例。

class test
{
    public:
        test (int number);

    private:
        cv::LDA lda(2);
}

最佳答案

如果您使用 c++11,那么您可以在声明的同时进行初始化:

class test {
  public:
    test (int number);
  private:
    cv::LDA lda{2};
};

如果不是,那么你必须在ctor定义中使用成员初始化:

class test {
  public:
    test (int number) : lda(2 /*or number?*/) {…};
  private:
    cv::LDA lda;
};

关于c++ - 在 C++ 中将对象创建为私有(private)类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31334680/

相关文章:

c++ - 无法编译 C++ 代码 : invalid conversion from 'Node*' to 'int'

C++ win32控制台应用程序使用Windows api添加 "choose file"对话框

java - 如果消除了对多重继承的限制,那么 Java 中的接口(interface)和抽象类有什么区别?

c++ - 使用 `std::function` 从另一个对象调用一个对象的成员

c++ - 针对这种情况促进代码重用

c++ - CUDA:内存限定符的非法组合

java - 通过反射将检索到的对象转换为字符串(如何迭代多个类类型?)

c++ - typedef 是否应该同时出现在类定义和类声明中?

c# - 清洁代码 : SRP and Open/Closed when fetching data from web services

c# - 为什么IL2CPP运行无错无输出