c++ - 编译 C++ 类时出现问题

标签 c++

我正在运行一个 C++ 程序,它使用另一个 .cpp 文件中的类。该类只有一个构造函数。当我单独测试它时它会起作用。主程序可以编译,但是当我运行它时,构造函数中有一个错误。任何人都可以想到可能发生的任何情况?谢谢。

我想我只是在终端中运行代码,没问题。但是当我尝试在 eclipse 中构建项目时,它显示以下代码有多个定义错误:

class model
{
  public:
    int textures [];
    float vertices[][3];
    float triangles[][13];
  public:
    model(const char*); // constructor
};

model::model(const char* filename)
{

错误信息是:`model::model(char const*)' 的多重定义

有什么想法吗?

最佳答案

您需要将代码拆分为 .h( header )和 a.cpp(实现)文件并放入:

model::model(const char* filename)
{

在后者。或者,重写您的类,使构造函数(和任何其他成员函数)的定义位于类的头文件中:

class model {
   ...
   model(const char*) {
     // constructor body here
   }
};

关于c++ - 编译 C++ 类时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2126338/

相关文章:

c++ - 在 Qt MinGW 编译器中处理 __event

c++ - 管道优化,这样做有什么意义吗?

c++ - 获取 excel 单元格的大小(以像素为单位)

c++ - 中断 sleep() 函数

c++ - 是否允许调用参数中的typename T?

c++ - 很奇怪的 MinGW ld 问题 - "collect2: ld returned 1 exit status"

c++ - 返回对临时(内置类型)的引用

c++ - 包装迭代句柄以用于基于范围的 for 循环

android - Libcurl Certificate Pinning 在 iPhone 上工作但在 Android 上不工作

c++ - 是否可以锁定应用程序中常用控件使用的内存?