每当我尝试制作一个对象并在其上调用一个函数时,它似乎无法工作。
我不知道为什么,因为我似乎也没有错误。
我已经在这里搜索了构造函数和toString方法,但是找不到任何有用的东西。
我曾尝试编辑(不同)构造函数成员中的成员, 试图重写toString方法。 试图制作本地对象(没有指针)。
但它并没有将我在调用构造函数时创建的对象中的内容返回给我。
问题出在这个问题的哪个位置?
这是我的代码:
.h文件:
#pragma once
#include "stdafx.h"
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
class Store{
private:
int id;
string name;
string adress;
string telephone;
string btwNumber;
public:
int getId();
void setId(int);
string getName();
void setName(string);
string getAdress();
void setAdress(string);
string getTelephone();
void setTelephone(string);
string getBtwNumber();
void setBtwNumber(std::string);
string toString();
Store(int, string, string , string, string);
};
.cpp文件:
// Store.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "Store.h"
Store::Store(int idnum, string nameS, string adreS, string telephonE, string btwnummeR){
idnum = id;
nameS = name;
adreS = adress;
telephonE = telephone;
btwnummeR = btwNumber;
}
int Store::getId()
{
return id;
}
void Store::setId(int id){
this->id = id;
}
string Store::getName(){
return naam;
}
void Store::setName(string name){
this->naam = naam;
}
string Store::getTelephone(){
return telephone;
}
void Store:setTelephone(string telephone){
this->telephone = telephone;
}
string Store::getBtwNumber()
{
return btwNumber;
}
void Store::setBtwNumber(string btwNumber){
btwNumber = btwNumber;
}
string Store::getAdress(){
return adress;
}
void Store::setAdress(string adress){
this->adress = adress;
}
string Store::toString(){
stringstream s;
s << "Id: " << id << endl;
s << "Naam: " << name << endl;
s << "Adres: " << adress << endl;
s << "Telefoonnummer: " << telephone << endl;
s << "BTWnummer: " << btwNumber << endl;
return s.str();
}
int _tmain(int argc, _TCHAR* argv[])
{
Store *test = new Store (4, "Test", "test", "test", "test");
test->toString();
system("Pause");
return 0;
}
答案 0 :(得分:3)
您的构造函数是反转的:您将成员变量分配给构造函数参数,反之亦然。
nameS = name;
应该是
name = nameS;
等等
答案 1 :(得分:2)
方法toString
确实有效,但它不会神奇地决定将其返回值输出到屏幕。你必须自己做:
std::cout << test->toString() << std::endl;
您需要在cpp文件的顶部添加#include <iostream>
。