我无法在头文件中打印我的内容。当我将所有代码放在一个cpp文件中时,一切正常,但是当我尝试使用头文件时它不会运行。
这是我的头文件,vet.h
#ifndef Vet
#define Vet
class LIST
{
private:
struct PET
{
string last_name;
string pet;
string animal;
string color;
int dob;
};
//enter data
public:
void Read
{
cout<<"Your pets first name: ";
cin>>PET.pet;
cin.ignore();
cout<<"Your last name: ";
cin>>PET.last_name;
cin.ignore();
cout<<"What kind of animal do you have: ";
cin>>PET.animal;
cin.ignore();
cout<<"Your animals dob: ";
cin>>PET.dob;
cin.ignore();
cout<<"Your animals color: ";
cin>>PET.color;
cin.ignore();
}
};
#endif
这是我的cpp文件,Veterinary.cpp
//read from header file
#include <iostream>
#include <string>
#include <stdio.h>
#include <algorithm>
#include "Vet.h"
using namespace std;
int main()
{
LIST P;
P.Read();
system("pause");
return 0;
}
答案 0 :(得分:0)
该类没有类型为PET的数据成员,因此成员函数读取无效。您需要定义PET类型的数据成员,您将在其中输入有关宠物的数据。 C ++没有匿名结构。
还要考虑使用命名空间std的指令必须放在带有类定义的头之前。如果您在标题中包含标题<iostream>
和<string>
并使用合格的标准名称而不是使用该指令,那会更好。
标题看起来像
#ifndef Vet
#define Vet
#include <iostream>
#include <string>
class LIST
{
private:
struct PET
{
std::string last_name;
std::string pet;
std::string animal;
std::string color;
int dob;
} pet_data;
//enter data
public:
void Read()
{
std::cout<<"Your pets first name: ";
std::cin>>pet_data.pet;
std::cout<<"Your last name: ";
std::cin>>pet_data.last_name;
std::cout<<"What kind of animal do you have: ";
std::cin>>pet_data.animal;
std::cout<<"Your animals dob: ";
std::cin>>pet_data.dob;
std::cout<<"Your animals color: ";
std::cin>>pet_data.color;
}
};
#endif