如何修复C++;? 我是一个C++的新手,在CS基础上使用MOOC。我试图创建一个类来查找立方体的体积。当我运行该文件时,我得到了“对`Cube::getVolume()的未定义引用”。我不确定为什么函数没有被正确调用,因为我直接从屏幕上复制了文本。我知道我正确地设置了编译器,因为我能够正确地运行第一个模块的信息

如何修复C++;? 我是一个C++的新手,在CS基础上使用MOOC。我试图创建一个类来查找立方体的体积。当我运行该文件时,我得到了“对`Cube::getVolume()的未定义引用”。我不确定为什么函数没有被正确调用,因为我直接从屏幕上复制了文本。我知道我正确地设置了编译器,因为我能够正确地运行第一个模块的信息,c++,C++,''' #pragma一次 类立方体{ 公众: 双getVolume(); 双getsurfaceearea(); 空隙设置长度(双倍长度); 私人: 双倍长度; }; #包括“Cube.h” { 双多维数据集::getVolume(){ 返回长度×长度×长度; } 双多维数据集::getSurfaceArea(){ 返回6*length\ux length\ux; } void多维数据集::setLength(双倍长度){ 长度=长度; }} #包括 #包括“Cube.h” int main(

'''

#pragma一次
类立方体{
公众:
双getVolume();
双getsurfaceearea();
空隙设置长度(双倍长度);
私人:
双倍长度;
};
#包括“Cube.h”
{
双多维数据集::getVolume(){
返回长度×长度×长度;
}
双多维数据集::getSurfaceArea(){
返回6*length\ux length\ux;
}
void多维数据集::setLength(双倍长度){
长度=长度;
}}
#包括
#包括“Cube.h”
int main(){
立方体c;
c、 设定长度(3.48);
double volume=c.getVolume();

std::cout除了Cube.cpp中的格式设置(如上所述,您不需要大括号)之外,您的代码看起来很好。我想问题不在代码中,而是在构建/编译命令中。您使用哪种编译器和/或IDE

下面是一个通用(Linux/macOS)命令行示例,说明如何构建代码:

g++main.cpp Cube.cpp-o cubeap

运行您的程序:

/cubeap

立方体.h

#pragma once

class Cube {
    public:
      double getVolume();
      double getSurfaceArea();
      void setLength(double length);

    private:
      double length_ = 0.0;
};
Cube.cpp

#include "Cube.h"


double Cube::getVolume() {
    return length_ * length_ * length_ ;
}

double Cube::getSurfaceArea() {
    return 6 * length_ * length_ ;
}

void Cube::setLength(double length) {
    length_ = length;
}
main.cpp

#include <iostream>
#include "Cube.h"

int main() {
    Cube c;

    c.setLength(3.48);
    double volume = c.getVolume();
    std::cout << "Volume: " << volume << std::endl;

    return 0;
}
#包括
#包括“Cube.h”
int main(){
立方体c;
c、 设定长度(3.48);
double volume=c.getVolume();

std::cout这看起来像文件
“Cube.h”
“Cube.cpp”
“main.cpp”
连接在一起。它们应该是分开的。必须查找MOOC。确保它不是猎户座100的主人。最后我看到的是MOOIII,所以我非常担心我被炸出了轨道,进入了一个轨道,冻结了我的生命支持,500年后将我送回了地球。
{double Cube::getVolume()
是一个语法错误,编译器应该诊断您的问题似乎只是因为其格式问题而被误解。请阅读并修复该问题。假设您确实正确设置了环境以生成两个代码文件和一个头文件,并且您只对格式进行了错误处理,请尝试删除该对f
{}
包含所有第一个代码文件,即您显示的第二个文件。(这基本上是重复@M.M的注释,只是提供了更多细节。)
#include <iostream>
#include "Cube.h"

int main() {
    Cube c;

    c.setLength(3.48);
    double volume = c.getVolume();
    std::cout << "Volume: " << volume << std::endl;

    return 0;
}