나는이 오류를 많이 보았으며 여기에 대해 많은 의문점이 있지만 지금은 무엇을 해야할지 정말로 모른다.Error : [class name] 클래스의 재정의
User.h
#ifndef USER_H
#define USER_H
#endif // USER_H
#include <iostream>
using namespace std;
class User
{
private:
struct Accounts {string user, password, name;} accounts[2];
void setAccounts();
public:
int Access(string user, string password);
bool online;
User();
~User();
};
User.cpp는
#include "User.h"
#include <iostream>
User::User() {/* data */}
User::~User() {/* data */}
void User::setAccounts()
{
accounts[0].user = "user01";
accounts[0].password = "pw01";
accounts[0].name = "hi";
accounts[1].user = "user02";
accounts[1].password = "pw02";
accounts[1].name = "hi2";
}
int User::Access(string user, string password)
{
unsigned short int i;
for (int i = 0; i <= 1; i++)
{
if (user.compare(this->accounts[i].user) == 0 and password.compare(this->accounts[i].password) == 0)
return 0;
}
return 1;
}
난 #pragma once
을 사용했는데 여전히 클래스를 인식하지. 어떻게해야합니까?
@ 편집 :#endif // USER_H
으로 이동했지만 클래스가 인식되었지만 생성자 메서드가 여전히 누락되었습니다.
"error: multiple definitions of 'User::User()'"
당신의 포함 된 감시는 ... 음 ... 아무 것도. – tkausl
#pragma가 #if .. #endrag guard # 123를 제거하면 #pragma는 정상적으로 처리됩니다. – SnoozeTime
#pragma를 올바른 위치에 넣었다 고 가정하면 :-) – pm100