gpt4 book ai didi

c++ - 从书本上学习 C++ 无法让这个程序与类一起工作

转载 作者:行者123 更新时间:2023-11-28 04:35:12 25 4
gpt4 key购买 nike

主程序:

#include<iostream>
#include<string>
using namespace std;
#include "klasse_methoden.cpp"

int main(){

postenTyp pEins;
pEins.werteZuweisen(5,2.5,"Working?");
pEins.ausgeben();

}

类定义:

#include<string>
using namespace std;

class postenTyp{
private:
int anzahl;
double kommaZahl;
string name;
public:
void werteZuweisen(const int &, const double &, const string &);
void ausgeben();
};

类方法:

#include "klasse_definition.cpp"
#include<iostream>


void postenTyp::werteZuweisen(const int &a, const double &p, const string &b){
anzahl = a;
kommaZahl = p;
name = b;
}

void postenTyp::ausgeben(){
cout << "Anzahl: " << anzahl << "Kommazahl: " << kommaZahl << "Name: " << name << endl;

}

编译错误-多重定义

这本书教我不要在类定义和类方法中包含任何内容或使用命名空间,但后来我得到了更多错误。

最佳答案

您应该包含头文件而不是源文件。

对于 klasse_methoden.cpp 源文件都是如此,您应该在其中包含 klasse_methoden.h 而不是相反,在 main.cpp 中也包含 klasse_methoden.h.

另外,为了避免包含一个 header 的内容两次,您需要在 header 的开头使用 pragma 说明符 #pragma once 或使用这样的定义

#ifndef _MY_HEADER_GUARD_
#define _MY_HEADER_GUARD_

//header content

#endif

关于c++ - 从书本上学习 C++ 无法让这个程序与类一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51653780/

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