c++ - collect2.exe: 错误: ld 返回 1 退出状态 \\ CPP & HPP 文件
问题描述
我正在为我的一个课程做一个项目,该项目需要我拥有多个 CPP 和 HPP 文件。我觉得我正确定义了所有类并正确设置了功能。在主文件中,我创建了一个函数来询问用户一些输入。然后我想将用户的输入设置为一个对象,以便以后可以操作它。但是,我似乎无法弄清楚为什么我不断收到以下错误。
这是我的代码:
头文件
#ifndef CIRCLE_HPP
#define CIRCLE_HPP
#include "Rectangle.hpp"
class Circle{
private:
double radius;
public:
Circle();
Circle(double radius);
double getRadius();
void setRadius(double setRadius);
double calArea();
double calCircumference();
double calDiameter();
bool compareWithRec(Rectangle rec);
};
#endif
CPP 文件
#include "Circle.hpp"
#include "Rectangle.hpp"
using namespace std;
static const double PI = 3.141592;
double area;
//constructor with no parameters
Circle::Circle(){
radius = 1.0;
}
//constuctor with double parameter
Circle::Circle(double radius){
this->radius = radius;
}
//accessor function
double Circle::getRadius(){
return radius;
}
//mutator function
void Circle::setRadius(double setRadius){
radius = setRadius;
}
//member function for area
double Circle::calArea(){
area = radius*radius*PI;
return area;
}
//member function for circumference
double Circle::calCircumference(){
double
circumferance = 2*PI*radius;
return circumferance;
}
//member function for diameter
double Circle::calDiameter(){
double
diameter = 2*radius;
return diameter;
}
//member function to determine if recArea = calArea
bool Circle::compareWithRec(Rectangle rec){
if(area == rec.calArea())
return true;
else
return false;
}
主要的
#include <iostream>
using namespace std;
#include "Circle.hpp"
#include "Triangle.hpp"
#include "Rectangle.hpp"
void getAnswerRadius();
int main(){
Circle obj;
int userChoice;
cout << endl;
cout << endl;
cout << "-= Main Menu: Choose a shape or exit =-" << endl;
cout << "1. Circle" << endl;
cout << "2. Triangle" << endl;
cout << "3. Rectangle" << endl;
cout << "0. Exit" << endl;
cout << endl;
cout << endl;
cout << "Enter an action: ";
//loop to make user select options 1, 2, 3, or 0.
do{
cin >> userChoice;
if(userChoice == 1){
getAnswerRadius();
}else if(userChoice == 2){
cout << "two" << endl;
}else if(userChoice == 3){
cout << "three" << endl;
}else if(userChoice == 0){
cout << "Exit" << endl;
}else{
cout << "Hey! That doesnt look correct, please enter 1, 2, 3, or 0: ";
}
}while(userChoice != 1 && userChoice !=2 && userChoice != 3 && userChoice !=0);
return 0;
}
//function ask for user input as well as collects user's input
//function is responsible for setting radius (default is 1.0)
void getAnswerRadius(){
char answer;
double radiusCircle;
Circle obj;
cout << "Do you wish to enter the radius of the circle (Y/N): ";
cin >> answer;
if(answer == 'y' || answer == 'Y'){
cout << "Please enter the value of radius of the circle: ";
cin >> radiusCircle;
Circle obj(radiusCircle);
}else{
cout << "error";
}
}
解决方案
推荐阅读
- python - 在情节中,如何将跟踪名称的列表或字典传递给 graph_objects.Layout 函数?
- asp.net-core - Asp.net core mvc 文件夹 TreeView
- gstreamer - 使用 tcpserversink 的内存消耗正在增加
- python - 通过 pygsheets 写入 Gsheet 时,逗号会自动删除
- python - 事件循环关闭,停止机器人 discord.py 后出错
- javascript - Mongodb 查询以查找匹配项并使用 JavaScript 中的值更新列
- visual-studio-code - VSCode 刚刚停止格式化 C 源文件
- python - 根据条件合并两个数据框
- ios - macOS Xcode 仪器泄漏附加到 Safari 进程显示错误消息“未能获得授权”
- python - 使用 Python 从 Json 文件中删除项目/数据