條款1:仔細區別points和refrences
指標和引用主要有三個區別。
1:引用必須初始化,但是指標可以為null。
int* a = NULL;
int &b;//這裡報錯
int c = 10;
int &d = c;
2:使用引用可能會比使用指標更有效率。
主要原因是使用引用之前不需要測試其有效性。
void printDouble(const double &a)
{
cout << a << endl;
}
void printDouble(const double *a)
{
if (a)
cout << *a << endl;
}
相同的功能,上面的a可以保證肯定是double型別,但下面的a可能是NULL;這裡又多了一步。
3:指標可以指向另一個物件,但是引用永遠代表最初獲得的物件。
string s1("Nancy");
string s2("Clancy");
string &rs = s1; //rs 代表 s1
string *ps = &s1;//ps 指向 s1
rs = s2; // rs 仍然代表s1,但是s1的值變成了"Clancy"
ps = &s2;// ps 現在指向s2,s1沒有變化
相關推薦
條款1:仔細區別points和refrences
指標和引用主要有三個區別。 1:引用必須初始化,但是指標可以為null。 int* a = NULL; int &b;//這裡報錯 int c = 10; int &d =
ELK-學習-1:elasticsearch6.3安裝和配置
home true 地址 修改配置 iss HA 5.2.1 oop bubuko 安裝elacticsearch: 1,安裝jdk 要求1.8以上 2,安裝elacticsearch rpm –ivh https://artifacts.elastic.co/downl
第二章1:文件操作和函數
條件語句 info 文件操作 寫入 分享 查看文件內容 文本編輯器 inf 三目運算 三元運算符:又稱三目運算,就是對簡單的條件語句的簡寫 簡單條件語句:if.....else 轉換成三元運算:val 文件處理:怎麽查看文件內容 1,首頁我要有個文本編輯器 2
effective c++條款34:區分介面繼承和實現繼承
1. 純虛擬函式也可以有具體實現 #include <iostream> using namespace std; class Airplane { public: virtual void fly(const char *)const = 0; }; void Airplan
條款1:視C++為一個語言聯邦。
C++是一個如此複雜的語言,可以分解為4大部分:1.C語言:比如內建資料型別,陣列,指標,預處理,語句等內容均來源於C。2.面向物件的C++:類、建構函式,解構函式,封裝,繼承,派生,多型,虛擬函式。3.泛型C++:就是使用模板程式設計。4.STL庫:各種容器,迭代器,演算法,函式物件。 &
Effective Java 第三版讀書筆記——條款8:避免使用 Finalizer 和 Cleaner 機制
Finalizer 機制通常是不可預知的、危險的、不必要的。它們的使用會導致不穩定的行為,糟糕的效能和移植性問題。從 Java 9 開始,Finalizer 機制已被棄用,但仍被 Java 類庫所使用。 Java 9 中 Cleaner 機制代替了 Finalizer 機制。 Cleaner
建議 1:不要在常量和變數中出現易混淆的字母
在捧讀《編寫高質量程式碼改善Java程式的151個建議》的過程中,也一一印證這自己所遇到的問題,有所感、有所悟,所以借簡書這樣一個平臺希望和大家進行分享。 包名全小寫,類名首字母全大寫,常量全部大寫並用下劃線分割,變數採用駝峰命名法(Camel Case)命名等,這些都是最基本的Java編碼規範
effective c++條款09:絕不在構造和析構過程中呼叫virtual函式
#include <iostream> using namespace std; class BaseClass { public: BaseClass() { cout << "BaseClass" << endl; } ~
Appium基礎總結1:獲取包名和Activity
主要通過cmd命令:aapt來獲取包名和Activity 1.安裝android build-tools SDK安裝目錄雙擊Manager.exe,勾選Build-tools 2.PATH配置環境變數 將SDK安裝目錄下的\Android\android-sdk\build-tools\24.0.0;新增到
演算法9-1:最大流和最小切割問題
最小切割問題 首先介紹什麼是切割。切割就是將一張圖中的頂點分成兩部分A和B。 接下來介紹一下什麼是容量。容量是A區到B區所有的邊權重之和。 最小切割就是求一張圖中使得容量最小的切割方式。 最小切割的應用 最小切割在國家的拆分時會用到。著名的蘇聯解體事件就是
C++11 條款1:理解模板型別推導
前言 c++98有單獨一套型別推導規則:適用於函式模板。c++11修改了這套規則並且增加了兩個,一個是auto,一個是decltype。c++14擴充套件了auto和decltype使用的場景。隨著型別推導在應用程式中的使用逐步增加,你可以從那些明顯或冗餘的型別拼寫中
vue專案實踐教程1:vux專案搭建和簡介
vue作為比較受歡迎的前端開發框架之一,因為其優雅的程式碼結構,輕量化程式碼設計,簡介易懂的API,靈活易用的指令和屬性廣受前端開發者的喜愛,其學習成本和學習難度相對react來說要簡單很多。 這裡,筆者以一個小專案為例,向大家介紹vue的使用和開發。 在瞭
分散式系統理論基礎1: 一致性、2PC和3PC
狹義的分散式系統指由網路連線的計算機系統,每個節點獨立地承擔計算或儲存任務,節點間通過網路協同工作。廣義的分散式系統是一個相對的概念,正如Leslie Lamport所說[1]:What is a distributed systeme. Distribution is in the eye of the b
十九、面向物件基礎1:類、__init__和__str__、小例子(烤地瓜相關程式;存放傢俱:建立了房子類、建立了床類、沙發類)
一、類和物件的關係 面向物件程式設計的2個非常重要的概念:類和物件 物件是面向物件程式設計的核心,在使用物件的過程中,為了將具有共同特徵和行為的一組物件抽象定義,提出了另外一個新的概念——類 類就
【Spring學習筆記】1:開發環境,BeanFactory和ApplicationContext兩類容器
開發環境 和Struts2,Hibernate一樣把下載的jar包放在WEB-INF/lib/下就可以了,最小依賴是: 其中commons-logging-*.jar是額外的,不是Spring自帶的。 BeanFactory容器 是為依賴注入(DI)
走進JavaWeb技術世界1:JavaWeb的由來和基礎知識
本系列文章將整理到我在GitHub上的《Java面試指南》倉庫,更多精彩內容請到我的倉庫裡檢視 https://github.com/h2pl/Java-Tutorial 喜歡的話麻煩點下Star哈 文章首發於我的個人部落格: www.how2playlife.com 本文是微信公眾號【Java技術江
要點1:指標、陣列和複合字面量
# 一維陣列及其指標表示法 一維陣列: ```c int ar[] = {1,2,3} // 直接初始化,編譯器自動獲取陣列大小 int br[3] = {1,2,3} // 直接指定大小 ``` 陣列的名字ar其實是一個指標: ```c int *pr = ar; printf("%d\n
1定時器(springboot 和spring的區別: springboot的配置檔案不用配)
在Spring Boot中使用@Scheduled實現定時任務 之前沒有使用Spring Boot的Java風格配置的時候,用XML配置過@Scheduled定時任務,現在都習慣使用Java風格配置了,在此簡單記錄 一下Spring Boot的@Scheduled定時任務的實現過程。 1.
java面試(1): java中==和equals和hashCode的區別
1."==" "=="運算子是比較兩個變數的值是否相等。也就是說,該運算子用於比較變數對應的記憶體中所儲存的值是否相等,要比較兩個基礎型別的資料或兩個引用變數是否相等,只能使用"=="運算子。 具體而言,如果兩個變數是基礎
計算機網路學習1:HTTP協議中URL和URI的區別
國際慣例膜dalao,dalao部落格讓我學習到了新姿勢 首先,先來了解一下這些單詞的全稱: HTTP = Hyper Text Transfer Protocol(超文字傳輸協議) URI