나는 C++을 배우고있다. 단지 궁금한 점은, 클래스 선언 내에서 정적 변수와 상수 변수 만 값을 할당 할 수 있습니까? 이것은 주로 정상적인 멤버에 값을 할당 할 때, 그들은 특별한 방법이이 생성자 있어야하는데 같습니다 void myClass::Init() : member1(0), member2(1)
{
}
, 나는 (즉 NULL를 반환 할 수 있습니다) 함수의 반환 값 중 하나와 A의 초기화 목록에서 std::string A::str_을 초기화 할 ctor에 이니셜 라이저 목록에 문자열 할당에서 두 번 호출 기능을 피하거나 const char* . 그러나 나는 Func()이 두 번 호출된다는 사실을 좋아하지 않습니다. #include <iostream>
저는 이니셜 라이저 목록을 사용하여 다음과 같이 몇 번 실행 했으므로 잘 설명하지 못했습니다. 사람이 (내가 오타를 잡을 수있는 컴파일러, 그래서 나와 함께 부담하지 않습니다) 다음과 같은 실패 이유를 정확히 설명 할 수 : class Foo
{
public:
Foo(int i) : m_i(i) {} //works with no problem
struct A에는 여러 데이터 멤버가 초기화 된 여러 생성자가 있습니다. 나는 그것이 custom_type 말과 함께 인스턴스화 때 얻을 template<typename T>
struct A {
typedef std::vector<T> type1
type1 a;
type1 b;
type1 c;
A(
가능한 중복 : 콜론 (":")을 무엇 cross(vector<int> &L_, vector<bool> &backref_, vector< vector<int> > &res_) :
L(L_), c(L.size(), 0), res(res_), backref(backref_) {
run(0);
}
: 아래의 C++ 함수의 C++ we
부스트 asio 프레임 워크와 예제를 살펴 보았습니다. 내가 어떻게 생성자가 나중에에 정의 된 acceptor_ 인스턴스 변수를 초기화하는 등의 혼란 스러워요 tcp_server(boost::asio::io_service& io_service) : acceptor_(io_service, tcp::endpoint(tcp::v4(), 50500))
을 다음
개발중인 C++ 응용 프로그램에 대한 예외 클래스의 작은 계층 구조를 작성 중이므로 std::runtime_error에서 간접적으로 파생되는 데 어려움을 겪고 있습니다. 여기에 유사 코드는 내가 지금까지 쓴 무슨이다 : class RuntimeException : public virtual boost::exception, public virtual std:
이것이 작동하지 않는 이유를 알 수없는 것 같습니다. 나는 항상 'this'포인터를 생성자 내부에서 사용할 수 있다고 생각했지만 초기화 목록에서 'this'를 사용할 수 없다는 것을 결코 알지 못했습니다. #include <iostream>
class A {
public:
int a;
int b;
A(int a
전에 예외를 던져 건설을 방지 C++ 나는 예외 건설을 방지하기 위해 자신의 멤버 함수를 사용하여 생성자의 몸의 오프닝 중괄호 { 전에 throw에 수업을합니다. 임의로 선택된 void 반환 유형과 해당 데이터 유형이 반환 유형과 일치하는 무조건 throw 예외가있는 멤버 함수를 정의하여이 데이터 멤버를 구성하여 throw을 트리거 할 수 있도록했습니다.
비슷한 검색어를 보았지만 혼자 길을 잃은 것 같습니다. 그래서 다음을 고려하십시오, 간단한 예제를 가지고 : #include <iostream>
using namespace std;
class Animal
{
public:
Animal() {cout << "Animal" << endl;}
};
class Cat : public