gpt4 book ai didi

C++ : Return string value through function call on a class object

转载 作者:行者123 更新时间:2023-11-28 00:44:21 25 4
gpt4 key购买 nike

我已经开始学习 C++,并尝试一边做游戏,一边做一些令人兴奋的事情。我已经制作了我的项目(使用 Netbeans),使用 main 和另一个类来处理一些逻辑。在我深入研究逻辑之前,我做了一个测试,看看是否一切都按预期进行。编译没有问题,但是当我运行我的项目时,我没有在控制台中看到想要的文本。我已经从 main.cpp 以及对象类本身尝试了 cout 它,但无论哪种方式都不走运(getCharacterName 没有输出) .

如果您有时间快速浏览一下我下面的代码并为我指明正确的方向,我会很高兴。

主要.cpp

#include "character/info.h"
#include <iostream>

using namespace std;

info * character;

int main() {
character = new info("PlayerName");
character->getCharacterName();
delete character;
}

信息.h

#ifndef INFO_H
#define INFO_H

#include <iostream>

class info {
public:
info(std::string) {};
~info() {};
std::string getCharacterName() {};
}
#endif /* INFO_H */

信息.cpp

#include <iostream>

using namespace std;

class info {

static string characterName;

info(std::string charName) {
cout<<"starting character";
info::characterName = charName;
cout<<"character made";
}

~info() {
cout<<"Object removed";
}

public: void getCharacterName() {
cout<< info::characterName;
}
};

如前所述,最后一个函数也如下所示,主要是“cout”:

public: std::string getCharacterName() {
return info::characterName;
}

提前致谢

//火龙

最佳答案

您在 .h 文件中声明了空函数。当您将声明和定义分开时,您需要这样做:

信息.h

#ifndef INFO_H
#define INFO_H

#include <string>

class info {
public:
info(std::string);
~info();
std::string getCharacterName();
private
std::string name;
};

#endif

信息.cpp

#include "info.h"

#include <iostream>
using std::cout;

info::info(std::string charName) : name(charName) {
cout<<"character made";
}

info::~info() {
cout<<"Object removed";
}

std::string info::getCharacterName() {
return name;
}

作为旁注,我认为有几件事值得一提:

  • 在你的main.cpp中,你声明了一个全局变量来保存你的角色,这通常是我们试图避免的事情
  • 仍然在您的 main.cpp 中,您使用 new 创建您的角色,其中执行 info("MyCharacterName"); 可能就足够了
  • 上面的最后一点表明你声明了一个信息,但它实际上是你的类正在建模的一个角色,可能类名信息不相关
  • 以大写开头的类名通常是一个好习惯

继续做这个项目,最好的学习方法就是一次又一次地练习......

关于C++ : Return string value through function call on a class object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17132790/

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