현재 C++의 수업에 대해 배우고있는 임. 임 자바 언어 배경에서 오는.문자열 출력에 도움이 필요합니다.
나는 동물이라고 불리는 클래스가 있습니다. animals 생성자에는 문자열이 필요한 매개 변수가 있습니다. 내가 그 클래스의 객체를 생성하고 생성자에 전달 된 문자열을 인쇄하려고 할 때, 그것은
동물의 CLASS .. 새로운 줄에서 떨어져
#include "animal.h"
#include <string>
#include <iostream>
using namespace std;
animal::animal(string nameofanimal)
{
string name = nameofanimal;
}
void animal::getName(){
cout << name << endl;
}
동물 아무것도 출력하지 않습니다 HEADER :
#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();
}
출력은 아무것도 아니다. 이것은 매우 기본적인 코드이며 정직하게 말하면 나는 그런 간단한 작업을 수행하는 방법을 모른다. 내가 알아 차린 것은 동물 생성자에서 varible이라는 이름을 강조 할 때마다 getName() 함수의 가변적 인 이름이 강조 표시되지 않으므로 이것을 추측하는 것은 포인터와 관련이 있다는 것입니다. .
animal::animal(string nameofanimal)
{
string name = nameofanimal; // <<< This sets only the local variable
}
생성자의 코드를 살펴보십시오. 그것에 관해서는 아무것도 안 보이니? –
Sam이 말하는 것처럼. 범위 ... – xDaevax
'getName()'의 이름을'printNameToStdOut'로 변경하십시오. 이는 시도하려는 것이기 때문입니다. – juanchopanza