필요에 따라 새 클래스를 만들 수있는 #define 매크로를 만들려고합니다. 나는 정의의 "LNAME"매개 변수가 표준 : : 문자열 객체로한다하려는 경우#define 매크로를 통해 사용자 정의 클래스 만들기
#pragma once
#include "PDDefFileReader.h"
#define SET_LANG(lang) *(new std::string(lang))
#define LANG(cName, lName)
class cName
{
public:
cName()
{
_langName = SET_LANG(lName); <- HERE !!!!
_reader = new PDDefFileReader(_langName);
}
~cName(){}
std::string Str(){ return _langName; }
private:
PDDefFileReader* _reader;
std::string _langName;
};
그래서 내가 그것을 할 방법을 알고 싶어 여기에 내 코드입니다. 당분간 ("여기 !!!!"라는 줄에) 오류가 발생합니다 :
Error: Identifier "lName" is undefined
내가 원하는 것을 할 수있는 아이디어가 있습니까?
일부 상황을 알려 드리기 위해 맞춤 다국어 리더를하고 있습니다. 그래서 다음과 같이하면 새로운 언어를 정의 할 수 있습니다.
LANG(Cpp, "cpp")
LANG(Perl, "pl")
감사합니다.
-1 컴파일러의 전 처리기가 아닌 IDE에 의해 삽입 된 보일러 플레이트 매크로 만 사용하십시오. – TemplateRex
왜이 용도로 템플릿을 사용하지 않습니까? –
이러한 클래스가 문자열 변수에서만 다른 경우 여러 클래스가있는 이유는 무엇입니까? 왜 문자열 인자를 취하는 생성자를 가진 클래스가 하나도 없습니까? – Beta