1. 程式人生 > >C++常見錯誤總結(不定時更新版~)

C++常見錯誤總結(不定時更新版~)

C++遇到常見的錯誤總結:

1.vector容器賦值經常用xxx.push_back(), 而不能直接用xxx[i] = yyy;(下標是修改不是插入,如果要用下標,需要保證初始化時候有足夠的元素 .)

2.如果在迴圈外對容器進行宣告, 在迴圈內對容器進行使用,注意在容器使用前清空容器。

3.如果考慮兩種型別元素相關聯,通常使用結構體(map可能會出現多重對映)。

4.關於計數器,static要在類外初始化。int Student::count = 0;此時不用在前面加static

5.靜態資料成員要通過靜態成員函式訪問

6.閏年的判斷((year % 4 == 0 &&year%100!=0) || (year%400==0))

7.

int m = 10;
int &y = 10 // 此時會報錯**非常量的引用值必須為左值**正確的語句為:int &y = m; 或者 const int& y = 10

8.設一類名為A則 A()會宣告一個呼叫預設建構函式建立的無名臨時物件,同時下面的一句也有同樣的效果;

class A {...} a;

9.當我們建立一個建構函式時會自動遮蔽預設的預設建構函式

10.當編譯器為了找到合適的函式過載時,它不會檢測函式的返回型別,而只會檢測函式的形參型別數量順序。

11.拷貝建構函式必須call by reference否則會出現無窮遞迴而使程式崩潰

12.new運算子和delete可以進行過載

13.iostream.h是C語言中的標頭檔案,不存在名稱空間

14.預設解構函式不能有返回值也不能有引數,同時也不能過載

15.

int * const p; // 宣告的是一個常量指標,指標不可變,指向的整型變數可以改變
const int* p; // 宣告的是一個指向常量的指標,指標可以變,指向的整型變數不可以改變
const int* const p; // 宣告的是一個指向常量的常量指標,兩者均不可以修改

16.引用是別名,只可以被初始化,不可以再賦為另一個物件的別名,但是指標卻可以被賦值;同時引用不能為空而指標可以為空。

17.

classname& operator++() {...} // 過載了前置自加運算子
classname operator++(int o) {...} // 過載了後置自加運算子,o為沒有實際意義的引數

前置++無形參,引用返回;後置++有形參,按值返回

18.C++不能為基本資料型別過載運算子

19.派生類的指標必須強制轉換為基類指標後才能指向基類的物件

20.不能過載的運算子: :: . * ?: sizeof

21.按值返回和按引用返回的區別:

int  test() {
    ...
    return test;
} // 此時生成的是變數test的拷貝即一個臨時變數,當這個變數被使用後就會被銷燬,所以按值返回不能做左值運算

int& test() {
    ...
    return test;
} // 此時返回的是引用即變數test的別名,我們可以對這個變數進行左值運算如賦值
int& test() {
    int temp;
    return temp;
} // 由於temp是個區域性變數所以函式執行完畢會被銷燬,此時返回一個空引用是錯誤的

相關推薦

C++常見錯誤總結定時新版~

C++遇到常見的錯誤總結: 1.vector容器賦值經常用xxx.push_back(), 而不能直接用xxx[i] = yyy;(下標是修改不是插入,如果要用下標,需要保證初始化時候有足夠的元素 .) 2.如果在迴圈外對容器進行宣告, 在迴圈內對容

c++開發中常見bug總結定期更新

儘管平時千叮嚀萬囑咐,可是低階錯誤總是不可避免的會在程式開發過程中出現:因此博主記錄自己開發過程中出現過的錯誤,以便後期參考和總結:1. 通過指標加下標訪問陣列我自己寫的一段程式碼,通過結構體指標p_structA 逐個訪問結構體陣列A,A大小為3, 指標初始化, p_str

C#常見問題總結

7月 組件 圖片 水晶報表 datetime 控制臺 col orm value 1、erp系統可以在具有固定ip的擁有多層服務器的局域網中使用嗎?如何使用解決方法:把ini.配置文件字符串中的服務器名改成服務器的,把debug文件夾拷到其他機器上就行,服務器上的服務器名是

matlab常見函式總彙定時更新

1magic()隨機矩陣生成 2.eye(n)輸出n階單位方陣 3.rand(a,b)隨機矩陣 4.linspace(a,b,n)線性等分,a、b為等差數列的初值和終值,n是節點數 5.logspace(as,bf,n)等比數列 6.size(a)查驗矩陣維數 7.length(a)查驗向量

Atom常用快捷鍵定時

開啟設定 1、Edit>Preference 2、ctrl + shift + P > search for ‘settings-view:open’ 3、Packages>settings view 開啟-關閉 目錄樹 ctrl + \ 快速

Angular中響應式表單 FormBuilder、FormControl 、FormGroup、FormArray、setControl、setValue用法總結定時更新

以我的專案作為示例,總結一下Angular響應式表單的應用和常用的方法: 1.建立表單 form.ts程式碼 import { Component, OnInit } from "@angular/core"; import { FormArray, FormBuilder, FormC

Android面試總結(定時新版)

前言 因為個人原因想換個公司,所以最近一直忙著交接工作和準備面試,可能準備得比較充分面了幾家都過了,然後進了第一家,一直想寫個文章記錄下面試的事情,所以每次面試完我就在筆記本上記錄了面試的問題,然後斷斷續續寫了這篇文章,文章存了很久一直沒發表,一個是前面剛入職

Linux常見錯誤總結持續記錄

最近在接觸Linux,將學習過程中遇到的bug記錄一下。 目錄 一、/etc/profile配置錯誤command is not found 由於誤操作導致 source /etc/profile 報錯 -bash: id:command is not foun

SpringMVC接受JSON引數詳解及常見錯誤總結@RequestBody轉載

最近一段時間不想使用Session了,想感受一下Token這樣比較安全,穩健的方式,順便寫一個統一的介面給瀏覽器還有APP。所以把一個練手專案的前臺全部改成Ajax了,跳轉再使用SpringMVC控制轉發。對於傳輸JSON資料這邊有了更深的一些理解,分享出來,請

Oracle資料庫常見錯誤總結

實際專案實踐過程中,經常會遇到一些形如“ORA-XXXX”的Oracle錯誤提示,此時,我們便會開啟百度、Google,搜尋相關技術解決方案。本系列博文的目的就在於,對常見的Oracle錯誤提示進行總結,不斷完善。 ORA-12560 ORA-1

某協會網站開發定時更新進度

mybatis 用戶 需求開發 str pre ESS 進度 今天 tex 也許協會為了年底匯報內容有所增加緊急需求開發網站。 今天11月22號創建本博客用於記錄網站開發整個過程; 2018年11月19開始:SpringBoot + Mybatis-plus + boots

排序演算法定時更新~

插入排序: /** * 插入排序 * 初始時,拿第二個和第一個比較,如果第二個小於第一個,兩個交換 * 當進行到第N次時,前面的N-1個順序應該是正確的 * 拿第N個和前面的N-1個數比較,如果第M個小於N,M+1大於N,則把N插到M和M+1中間 *

pycharm的常用功能以及快捷鍵定時持續更新

Ctrl + /    行註釋/取消行註釋 Ctrl + Shift + /    塊註釋 Tab / Shift + Tab  縮排、不縮排當前行 Ctrl + Y    刪除選

Android開發之程式設計師必須要懂得Android的重要設計理念25.20新版

     上篇文章介紹了Android開發的設計理念的一部分,並沒有得到博友們的多大認可,只看到了一位博友在下面留言期待下一篇文章的發表,為了這小小的唯一支援,我決定繼續把後面的8個要點介紹一下,自己也潛心反省一下,自己的理解是不是太淺薄。 二、增加易用性     (6)一

[轉]C語言常見錯誤總結1

process log item 它的 too 問題 程序 副本 proc 指針與數組的對比c程序中,指針和數組在不少地方可以相互替換著用,讓人產生一種錯覺,以為兩者是等價的 數組要麽在靜態存儲區被創建(如全局數組),要麽在棧上被創建。數組名對應著(而不是指向)一塊內存,其

c語言程式設計常見問題總結1

總結1: 將全域性變數放在會被多次呼叫的標頭檔案中,編譯會報錯:該變數被多次定義,所以是最好把全域性變數放在.c檔案中。 總結2:  Getche()函式,輸入後立即從控制檯取字元,不以回車為結束(帶回顯); Getch()是一個不回顯函式,當用戶按下某個字元時,函式自動讀

Visual C++ MFC的圖形繪製——常見問題彙總定期更新

                  Visual C++ MFC的圖形繪製——常見問題彙總 目錄 一.常見問題 1. 選單介面製作 2.命令響應函式  3.新增私有變數 4.訊

轉:Spring Boot 錯誤總結累計30個常見錯誤

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/qq_32447301/article/details/77161272 1.新建Spring boot,出現src的包上出現錯誤的叉號:   

把數字倒序的幾種方法定時更新c++

方法一:(最初級) 【問題描述】 把一個固定的5位數倒序。 【輸入形式】 從鍵盤輸入一個5位數。 【輸出形式】 倒序後的5位數。 【樣例輸入】 12345 【樣例輸出】 54321 解題思路: 題目已經說明是固定的5位數了,就把每位分解輸出就可以。 解題程式碼:

C++基礎知識易錯點和易混淆總結匯總定時更新

以下是我本人不定時更新的易錯點彙總,如需轉載,請註明出處。 1、對指標的引用 int a = 10; int *p = &a; //初始化指標p。 int* &pa = p; //這個是對指標p的引用、在我們使用pa的操作。相當於對p的操作 2、函