value-initialization

    2熱度

    1回答

    我是一名C程序員,想要學習C++ 11,並且遇到了一些我不明白的東西。從我所知道的,下面的問題是值初始化和直接初始化之間的區別。 下面的代碼片段使用Visual Studio不能編譯: class TestClass { int _val; std::string _msg; public: TestClass(int, std::string); voi

    1熱度

    1回答

    可能重複: non-copyable objects and value initialization: g++ vs msvc Value-initializing an automatic object? 考慮下面的語句: 這不是真的有可能值初始化自動目的。 這句話是真的嗎?我看到在這樣做沒有問題: int main() { int i = int(); }

    6熱度

    1回答

    根據cppreference非工會類類型沒有任何用戶提供的構造被構造之前將零初始化: 如果T是一個非工會類類型而不任何用戶提供的構造函數,則該對象初始化爲零,然後隱式聲明的默認構造函數被調用(除非它是微不足道的) 我不知道當C++ 11繼承構造函數應該發生什麼因爲報價中明確提到了默認構造函數爲。 考慮下面的例子: #include <iostream> struct A { int

    1熱度

    1回答

    如何使用列表初始化語法初始化C++ 14中的聚合類型? Aggregate_t {}; 這被視爲聚合初始化,其產生錯誤或警告的用於未初始化Aggregate_t成員。 這可能嗎? EDIT:實例 struct Aggregate_t { int x; }; int main (int, char**) { Aggregate_t {}; return 0;

    4熱度

    1回答

    int* array = new int[ 10 ](); 這是新操作符的正確用法嗎?據我所知,以前的代碼將在陣列中的每個元素初始化爲0。 int* array = new int[ 10 ]; 是否代碼的第二行只是初始化數組,而不是設置的值爲零?

    3熱度

    1回答

    我一直在閱讀本頁面以瞭解值初始化的概念 http://en.cppreference.com/w/cpp/language/value_initialization 值初始化的效果是: 如果T是一個類類型,至少有一個用戶提供的任何類型的構造函數,默認構造函數被調用。 但這似乎是在與其他來源的說明,如果存在至少一個用戶定義的構造函數,則編譯器不會生成隱式默認的構造直接矛盾(表達式像「T噸;」將不會編

    2熱度

    2回答

    我知道,對於非POD類型的默認初始化也將默認通過調用其默認構造函數初始化非靜態非POD成員變量。但我不確定這是怎麼發生的。這裏是我的意思的例子: #include <iostream> #include <vector> using namespace std; class Test2 { public: Test2() {cout <<"Here";} }; c

    2熱度

    4回答

    我正在閱讀「加速C++」一書的第8章。 8.3節是關於輸入和輸出迭代器: vector<int> v; // read ints from the standard input and append them to v copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(v)); [...] The

    4熱度

    1回答

    我試着去了解@bolov的第一接受答案的問題Deleted default constructor. Objects can still be created... sometimes [1] 好像我發現有一個錯誤,所以它弄亂整個解釋。 @bolov解釋了爲什麼這個代碼成功地C++ 11編譯: 方案A struct foo { foo() = delete; }; // All b

    12熱度

    3回答

    我刷新我的價值初始化與默認初始化的理解,和整個this傳來: struct C { int x; int y; C() { } }; int main() { C c = C(); } 顯然,這是UB因爲 在C()的情況下,有一個構造函數能夠對 初始化x和y成員,因此不會進行初始化。嘗試將C()複製到c因此會導致未定義的行爲。 我想我明白爲什麼,