C++中this指標的詳解:
成員函式中this是指向正在呼叫該函式的物件,this指正在建立物件內部的成員。同一個類中的函式可以通過this相互呼叫,普通函式不能通過this呼叫建構函式,但建構函式可以通過this訪問普通函式!
.h檔案
ifndef TEACHER_H_
#define TEACHER_H_
class Teacher {
public:
int age;
int no;
Teacher();
~Teacher();
void teach1();
void teach2();
};
#endif /* TEACHER_H_ */
.cpp檔案
#include "Teacher.h"
#include <iostream>
using namespace std;
Teacher::Teacher() {
}
Teacher::~Teacher() {
}
//成員函式中this是:
//指向正在呼叫該函式的物件
void Teacher::teach1() {
cout<<this->age<<endl;
this->teach2();
}
void Teacher::teach2() {
cout<<this->age<<endl;
}
.main檔案
#include <iostream>
using namespace std;
#include "Teacher.h"
void f1() {
Teacher t1;//age no //建立的t1物件,this指向t1中的成員
t1.age = 100;
t1.teach1();//100
Teacher t2; //建立的是t2物件,this指向t2中的成員
t2.age = 200;
t2.teach1();//200
}
void f2() {
Teacher t1;//age=100
t1.age = 100;
Teacher *p1 = &t1; //p1指向的是t1物件,所以呼叫的是teach1()是t1中的!
p1->teach1();//100
}
void f3() {
Teacher t1;//age=100
t1.age = 100;
Teacher &r = t1; r指向的t1,呼叫的還是t1中的teacher1()
r.teach1();//100
}
int main() {
f3();
return 0;
}
相關推薦
《隨筆十七》—— C++中的 “ 指標詳解 ”
目錄 指標的概念 指標所指向的型別 指標的值 指標本身所佔據的記憶體區 指標的算術運算 運算子&和* 指標表示式 陣列和指標的關係 指標和結構型別的關係 指標和函式的關係
C++中this指標的詳解:
成員函式中this是指向正在呼叫該函式的物件,this指正在建立物件內部的成員。同一個類中的函式可以通過this相互呼叫,普通函式不能通過this呼叫建構函式,但建構函式可以通過this訪問普通函式!.h檔案ifndef TEACHER_H_#define TEACHER_H
C++ this指標的詳解 C++中this指標的用法詳解
C++中this指標的用法詳解 轉自:http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指標的用處: 一個物件的this指標並不是物件本身的一部分,不會影響sizeof(物件)的結果
c++中this指標的用法詳解
為什麼引入this指標? 最簡單的應用場景就是:當我們在類中定義了一個變數,同時在類成員函式中定義了同一變數時,也就是說變數名重複時,但是我們想使用類中定義的變數,這個時候我們該怎麼辦呢?這個時候就是this指標大顯身手的時候了。為此我們引入this指標
C++中this指標的作用以及用法詳解
為什麼引用this指標? 當我們在類中定義了一個變數,同時又在類成員函式中定義了同一個變數時,也就是變數名重複時,但是我們要想使用類中的定義的變數,此時就需要this指標了。 1.this指標的作用 指標存在於類的成員函式中,指向被呼叫函式類例項的地址。 一個物件的thi
C++ 中 this 指標的用法詳解
1. this指標的用處: 一個物件的this指標並不是物件本身的一部分,不會影響sizeof(物件)的結果。this作用域是在類內部,當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的地址作為一個隱含引數傳遞給函式。也就是說,即使你沒有寫上
c++中this指標的理解(轉載:苦澀的茶 ——產品開發 C++類中this指標的理解)
先要理解class的意思。class應該理解為一種型別,象int,char一樣,是使用者自定義的型別。用這個型別可以來宣告一個變數,比如int x, myclass my等等。這樣就像變數x具有int型別一樣,變數my具有myclass型別。理解了這個,就好解釋this了,m
C++ this指標詳解
C++this指標操作 在這裡總結一下this 指標的相關知識點。 首先,我們都知道類的成員函式可以訪問類的資料(限定符只是限定於類外的一些操作,類內的一切對於成員函式來說都是透明的),那麼成員函式如何知道哪個物件的資料成員要被操作呢,
C++類的this指標詳解
這篇文章主要講解隱式this指標的概念,以及如何使用,包含const 先直接給出一個C++Primer裡的類,你可能還不能完全看懂,但是不著急,我們一點點解釋 class Sales_data { std::string isbn() const { return bookNo; } Sale
C/C++中extern關鍵字詳解
編譯器 fin 生成 接口 bcd 只需要 c++環境 結束 編程 轉自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html 1 基本解釋:extern可以置於變量或者函數前,以標示變量或者
C/C++中作用域詳解(轉)
防止 局部作用域 gist 文件中 方式 為什麽不使用 形式參數 lan archive 作用域規則告訴我們一個變量的有效範圍,它在哪兒創建,在哪兒銷毀(也就是說超出了作用域)。變量的有效作用域從它的定義點開始,到和定義變量之前最鄰近的開括號配對的第一個閉括號。也就是說,作
C#中const用法詳解
htm 鏈接 服務器 span img body 用法詳解 -s 設計 本文實例講述了C#中const用法。分享給大家供大家參考。具體用法分析如下: const是一個c語言的關鍵字,它限定一個變量不允許被改變。使用const在一定程度上可以提高程序的安全性和可靠性,另外,
C#中protected用法詳解
base 而是 報錯 public 我們 此刻 訪問 .html 定義 轉自(https://www.cnblogs.com/wangyt223/archive/2012/08/08/2627801.html) 在c#的可訪問性級別中,public和private算是最
c/c++中static的詳解
extern info system pan 特點 靜態成員 額外 定義 全局 C 語言的 static 關鍵字有三種(具體來說是兩種)用途: 1. 靜態局部變量:用於函數體內部修飾變量,這種變量的生存期長於該函數。 int foo(){ st
C#中ToString()格式詳解
padding design otn href 有效 詳解 pattern console AS 以下內容均摘自博客園,僅供資料查詢。原文連接http://www.cnblogs.com/xdotnet/archive/2009/01/17/tostring_format.
C++中的繼承詳解
C++ 繼承 [TOC] 繼承基本知識 定義: 繼承是面向對復用的重要手段。通過繼承定義一個類,繼承是類型之間的關系建模,共享公有的東西,實現各自本質不同的東西。 繼承關系: 三種繼承關系下基類成員的在派生類的訪問關系變化(圖) 舉個栗子(公有繼承) ```c+
C++中列舉enum詳解
轉載部落格地址:https://blog.csdn.net/bruce_0712/article/details/54984371 眾所周知,C/C++語言可以使用#define和const建立符號常量,而使用enum工具不僅能夠建立符號常量,還能定義新
C語言之指標詳解
指標 &:操作符產生它的運算元的地址。 如: int a, *b (*b:指向整形變數的指標) .... b = &a; (&操作符取變數a的地址,並把它賦值給指標變數) *操作符
C/C++中volatile關鍵字詳解
asm 運行 多線程並發 這樣的 修改 由於 設定 其他 硬件 1. 為什麽用volatile? C/C++ 中的 volatile 關鍵字和 const 對應,用來修飾變量,通常用於建立語言級別的 memory barrier。這是 BS 在 "The C++ P
C++中的string詳解
標準庫型別string表示可變長的字元序列,為了在程式中使用string型別,我們必須包含標頭檔案: #include <string> 宣告一個字串 宣告一個字串有很多種方式,具體如下: 1 string s;//呼叫預設建構函式,s為一個空