간단히 말해서 텍스처 및 기타 반 - 상수 객체를 하나의 .h 또는 .cpp 파일 내에 준비하여 다른 파일 내에서 사용할 수있게하려고합니다. ,main() 전에 별도의 파일로 클래스 객체 초기화/준비
class Position
{
private:
int x;
int y;
public:
/* constructor, destructor, and other code */
void setPosition(int x, int y) { this->x = x;
this->y = y; }
};
그런 다음, 다른 파일에이 같은이 : 나는 같은 것을 할 수 있도록하려면
//otherfile.extension
// I want to be able to declare these objects here...
Position specialPosition1;
Position specialPosition2;
// ...and then be able to do this somewhere where it will keep
// this information for any other file that includes this.
specialPosition1.setPosition(25, 25);
specialPosition2.setPosition(-10, -10);
내가 그들의 setPosition()
메서드를 호출하고 내을 준비 할 수 있도록하려면를 가능한 경우 다른 파일에서 사용되는 동일한 파일. 또는 최소한 다른 곳에서 사용되기 전에 정보가 존재하도록 설정할 수 있어야합니다.
내가 회상한다면 정적 인으로 만들면이 문제가 해결되지 않을 것입니다. 게다가 나는 아직 (알려진) 장소가 없어서 이라고 불러서 물건을 준비 할 곳이 없다. 나는 또한 그것의 나의 지식이 막연하지만 extern에 약간의 비트를 읽었다.
main()
전에 이러한 개체를 준비하거나 좀 더 정확하게하려면 이러한 개체를 다른 파일에서 사용하기 전에 준비하는 "최상의"방법은 무엇입니까?
이 내가 알 필요가 정확히 것입니다. extern과 같은 것에 대해서는 약간 알고 있었지만, 객체가 const 인 경우 다른 생성자를 호출 할 수는 없다는 것을 솔직히 알지 못했지만 상식이어야한다고 생각했습니다. 그러나 괄호를 사용하지 않고 괄호를 사용하는 이유가 있습니까? 그것을 찾을 때, 내가 본 대부분의 예제는 괄호를 사용합니다. [여기] (예 : http://www.learncpp.com/cpp-tutorial/810-const-class-objects-and-member-functions/). – Uulamock
@Uulamock [constexpr] (http : //en.cppreference.com/w/cpp/language/constexpr)은 C++ 11의 새로운 기능이며'constexpr' 생성자는 원하는 경우 컴파일 타임에 생성 될 수있는 객체가 const 여야한다는 것을 의미하지 않습니다. 내가 괄호를 사용하지 않고 괄호를 사용하지 않은 특별한 이유는 없습니다. [균일 초기화] (http://www.learncpp.com/cpp-tutorial/b-4-initializer-lists-and-uniform-initialization/)라고도하며 C++ 11의 새로운 기능으로 약간의 이점이 있습니다 어떤 상황에서는. –