我已经在java和AS3和C#编程了一段时间,并决定给C++一个尝试......所以,我决定创建一个简单的程序来查看对象如何在这里工作。我有两个文件:为什么这段代码说我需要一个类/结构/联合?
Human.h
#pragma once
#include <string>
#include <iostream>
using namespace std;
class Human
{
private:
int _age;
string _name;
bool _gender;
public:
void setAge(int);
void setName(string);
int getAge();
string getName();
bool getGender();
Human(int age, string name, bool gender)
{
setAge(age);
setName(name);
_gender = gender;
}
~Human()
{
}
};
int Human::getAge(){
return _age;
}
string Human::getName(){
return _name;
}
bool Human::getGender(){
return _gender;
}
void Human::setAge(int val){
}
void Human::setName(string val){
_name = val;
}
而且Main.cpp的
#include <iostream>
#include "Human.h"
#include <string>
using namespace std;
void main(void){
Human *me;
me = new Human(27,"Mr Miyagi",true);
cout << "My name is "+me.getName()+" and I am "+me.getAge()+" years old";
}
我得到的是在 “我” 的一条红线字和错误C2228:'.getName'的左边必须有class/struct/union
谢谢!使用me-> getName()使程序运行!现在它给了我一个年龄为-8923454,但我想我可以从那里修复它;) – Loupax 2011-03-18 00:18:19
@Loupax - 因为你的'setAge()'什么都不做。 – Mahesh 2011-03-18 00:19:30
1st)Duh!我刚才注意到空setAge。第二)我不知道我可以创建一个对象,而不使用“新”...我想我会去买一本书或什么... – Loupax 2011-03-18 00:21:55