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的重要設計理念2(5.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、函