gpt4 book ai didi

c++ - 需要帮助打印出一个字符串

转载 作者:行者123 更新时间:2023-11-27 23:01:10 26 4
gpt4 key购买 nike

我目前正在学习 C++ 中的类。我来自 Java 语言背景。

我有一个名为动物的类。 animals 构造函数有一个参数,其中需要一个字符串。当我创建该类的一个对象并尝试打印出传递给构造函数的字符串时,它不会打印出除新行之外的任何内容..

动物类

    #include "animal.h"
#include <string>
#include <iostream>
using namespace std;


animal::animal(string nameofanimal)
{

string name = nameofanimal;
}

void animal::getName(){
cout << name << endl;
}

动物头:

#pragma once
#ifndef ANIMAL_H
#define ANIMAL_H
#include <string>
#include <iostream>
using namespace std;


class animal
{

private:
string name;

public:
animal(string x);
void getName();


};

#endif ANIMAL_H

主类

#include "animal.h"
#include <string>
#include <iostream>
using namespace std;



int main()
{
animal firstAnimal("Bob");
firstAnimal.getName();

}

输出什么都没有。这是一个非常基本的代码,老实说我不敢相信我不知道如何完成这么简单的任务。我注意到的是,每当我在 animals 构造函数中突出显示名称变量时,getName() 函数中的变量名称不会突出显示,所以我猜这与指针有关......不过我可能错了...... .

最佳答案

如下更改您的animal 构造函数定义

animal::animal(string nameofanimal) : name(nameofanimal) {
}

在您的原始定义中,您有一个局部变量 name 隐藏了类成员变量:

animal::animal(string nameofanimal)
{
string name = nameofanimal; // <<< This sets only the local variable
}

关于c++ - 需要帮助打印出一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27509403/

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