gpt4 book ai didi

c++ - 在 C++ header 中出现很多错误,但不确定为什么

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:48 25 4
gpt4 key购买 nike

我正在制作一个汽车设计程序。对于这个程序,我们在头文件中创建一个类,然后我们将在主程序中使用该头文件,方法是使用#include "name of header"包含该文件。

这是我的教授标题。这是他标题中的代码。我们被指示像他一样做头球。

/*
Program 14-2
author - Ray Warren, modified from Language Companion
last updated - 19 July 2013
*/

#include <string>
using namespace std;

class CellPhone
{
private:
// Field declarations
string manufacturer;
string modelNumber;
double retailPrice;

public:
// Constructor
CellPhone(string manufact, string modNum, double retail)
{
manufacturer = manufact;
modelNumber = modNum;
retailPrice = retail;
}

// Member functions
void setManufacturer(string manufact)
{
manufacturer = manufact;
}

void setModelNumber(string modNum)
{
modelNumber = modNum;
}

void setRetailPrice(double retail)
{
retailPrice = retail;
}

string getManufacturer()
{
return manufacturer;
}

string getModelNumber()
{
return modelNumber;
}

double getRetailPrice()
{
return retailPrice;
}
}; //end class

这是他在其中使用头文件的程序(如您所见,他包含了头文件)。

/*
Program14-2
author - Ray Warren, modified from Language Companion
last updated - 19 July 2013
*/

#include <iostream>
#include <cstdlib>

#include "CellPhone.hpp"
using namespace std;


int main()
{
// Create a CellPhone object and initialize its
// fields with values passed to the constructor.
CellPhone myPhone("Motorola", "M1000", 199.99);

// Display the values stored in the fields.
cout << "The manufacturer is "
<< myPhone.getManufacturer() << endl;
cout << "The model number is "
<< myPhone.getModelNumber() << endl;
cout << "The retail price is "
<< myPhone.getRetailPrice() << endl;

system("Pause");
return 0;
} //end main

这是包含我的类的头文件。

#include <string>
using namespace std;

Car(int ym, string mk)
{
yearModel=ym;
make=mk;
speed=0;
}

void setYearModel(int ym)
{
yearModel=ym;
}

void setMake (string mk)
{
make=mk;
}

int returnYearModel()
{
return yearModel;
}

string returnMake()
{
return make;
}

int returnSpeed()
{
return speed;
}

void accelerate()
{
speed += 5;
}

void brake()
{

这是我的主程序,我试图将头文件包含到我的主程序中。当我尝试编译它时,我的头文件在一个新的代码块 IDE 选项卡中弹出,并给了我这个错误列表。

http://prntscr.com/bzu4x5 <---------- 错误列表

我不知道我做错了什么。据我所知,我完全按照他告诉我们的方式复制了我的教授,但我仍然遇到错误。

有没有人知道是什么导致了这一庞大的错误列表?

#include <string>
#include <iostream>
#include "Car header.h"

int main()
{

}

最佳答案

您的“头文件”包含类成员函数的定义。它实际上应该是一个.cpp 文件。您缺少的是类本身的定义,以及成员函数的声明

请注意,您教授的示例头文件在类定义中定义了成员函数。这实际上是一种糟糕的做法,但他可能还没有抽出时间来教你如何定义函数。

如果您要定义函数,您还需要将函数更改为如下内容:

std::string Car::returnMake()
{
return make;
}

注意:“使用命名空间标准”也是一种糟糕的做法。专业的 C++ 代码往往是显式的,并使用“std::”前缀。只要养成习惯,就可以避免数小时的痛苦。

关于c++ - 在 C++ header 中出现很多错误,但不确定为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38685386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com