如何修复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;
}