2013-06-19 1 views
1

의 이름이없는 내가이 모든 하나 개의 클래스에서 잘 작동 cpp를 말할 수 있습니다,하지만 난 다른 클래스로 나눌 때마다 나는 점점 오류를 계속 할 경우, 그리고 나는 정말로 왜 그 코드를 다른 파일로 옮겨서 그것을 포함 시켰는지 이해하지 못합니다.C++ 오류 : ??? g의 ++의 MAIN.CPP -o 서비스</p> <p>을 실행에 따라 네 종류

는 I가 발생하고있다 :

[[email protected] ircservices]$ g++ main.cpp -o services      
In file included from services.cpp:1:0, 
       from main.cpp:4: 
services.h:23:2: error: âSOCKETâ does not name a type 
services.h:24:2: error: âHOSTENTâ does not name a type 
services.h:25:2: error: âSOCKADDR_INâ does not name a type 

services.h :

#ifndef SERVICES_H 
#define SERVICES_H 

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <malloc.h> 
#include <stdarg.h> 
#include <sys/socket.h> 
#include <sys/types.h> 
#include <netinet/in.h> 
#include <arpa/inet.h> 
#include <netdb.h> 

class services { 

public: 
    services(); //perhaps init something important here, dunno 
    ~services(); 
    int connect(); 

private: 
    SOCKET sock; 
    HOSTENT* host; 
    SOCKADDR_IN address; 
}; 

#endif /* SERVICES_H */ 

services.cpp :

#include "services.h" 

services::services() 
{ 
//do nothing 
} 

services::~services() 
{ 
//TODO: incase crash, log why. 
} 

int services::connect() 
{ 

    return 0; 
} 
+0

main.cpp에서'SOCKET' 등의 구조체를 정의합니까? – austin

+0

아니요,하지만 services.h에 정의되어 있으므로 필요합니까? – aeonicone

답변

0

C의 ++은 대소 문자를 구분합니다. 나는 모든 종류의 이름이없는하지 잘못된 소켓 또는 소켓을 생각하면 권리는

sockaddr_in 
hostent 

입니다.

+0

오, 내가해야 할 일이 뭔지 알아, 난 그냥 '소켓'을 사용하여 직접 모든 것이지만, 감사합니다! – aeonicone

+0

소켓은 함수입니다. –