C++筆記007:易犯錯誤模型——類中為什麽需要成員函數
先看源碼,在VS2010環境下無法編譯通過,在VS2013環境下可以編譯通過,並且可以運行,只是運行結果並不是我們期待的結果。
最初通過MyCircle類定義對象c1時,為對象分配內存空間,r沒有初始化,其值為亂碼,pi為3.1415926,area為亂碼。
【cin>>c1.r】這個語句為c1.r賦值,假設為10,然後執行【cout<<c1.area<<endl】,我們來看,執行cout時是從內存空間中拿c1.area的值,這個值在定義對象時候已經確定是一個亂碼值,此處不會執行【double area=pi*r*r】語句,因此輸出亂碼。
如果想獲取正確的結果,那就需要成員函數,在成員函數中進行計算。
C++筆記007:易犯錯誤模型——類中為什麽需要成員函數
相關推薦
C++筆記007:易犯錯誤模型——類中為什麽需要成員函數
計算 成員 area 分享圖片 end src 賦值 內存空間 3.1 先看源碼,在VS2010環境下無法編譯通過,在VS2013環境下可以編譯通過,並且可以運行,只是運行結果並不是我們期待的結果。 最初通過MyCircle類定義對象c1時,為對象分配內存空間,r沒有初
django模型類中,為什不是user_id而不是user?
class UserRole(models.Model): """使用者角色表,一個使用者可以同時擁有多種角色""" user_id = models.ForeignKey('User', on_delete=models.CASCADE, related_name
轉:python學習——類中為什麽要定義__init__()方法
dict tar tail 綁定 創建 原創 但是 area 似的 學習Python的類,一直不太理解為什麽一定要定義init()方法,現在簡要談一下自己的理解吧。1、不用init()方法定義類定義一個矩形的類,目的是求周長和面積。 1 class Rectangl
前端十萬個為什麽(之一):我們為什麽需要npm?
重要 col 以及 檢索 xxx 存在 你在 語句 16px p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span.s1 { font: 12.0
斯坦福大學公開課機器學習:Neural Networks,representation: non-linear hypotheses(為什麽需要做非線性分類器)
繼續 例子 產生 成本 log repr 概率 .cn 成了 如上圖所示,如果用邏輯回歸來解決這個問題,首先需要構造一個包含很多非線性項的邏輯回歸函數g(x)。這裏g仍是s型函數(即 )。我們能讓函數包含很多像這的多項式,當多項式足夠多時,那麽你也許能夠得到可以
深入淺出空間索引:為什麽需要空間索引
執行sql 北京 附近 而是 個數 分析 max www 是個 http://www.cnblogs.com/LBSer/p/3392491.html 一、問題 先思考個常見的問題:如何根據自己所在位置查詢來查詢附近50米的POI(point of interest
C# 任務管理器關閉程序,觸發程序中的什麽事件?
一句話 什麽 blog 看書 很多 愛的 手臂 出了 實現 <p> (1)守候 守候,是人生中;的一種美麗等待。 這等待也許是一種幸福!也許是片刻的溫馨! 如果真的要我回報你一世的柔情,我願一生為你默默守候! 誠然,思念著你,卻不能長長久久牽住你的手。我只能這
C++筆記一:函數
bsp 重載 不同的 單純 效率 局部變量 好處 png 如意 再談C++函數 1:引用 2:默認參數 3:函數重載 4:函數模板 —————————————————————————————————————————————
C++筆記(3):運算符重載
存在 新的 邏輯運算符 int() 取地址 參數 spl this 函數的重載 運算符重載 1.運算符重載基礎 2.運算符重載的規則 3.重載雙目運算符 4.重載單目運算符 5.重載流插入和提取運算符 6.類型轉換 7.定義自己的st
C++筆記(6):標準模板庫STL:容器、叠代器和算法
strong 並且 pty 優先級隊列 決定 image left sig 樹結構 STL(Standard Template Library)是C++標準庫的一部分。STL的代碼從廣義上講分為三類:容器、叠代器和算法。 1.容器 2.叠代器 3.算法 ---------
C++筆記(5):繼承和多態代碼實現
c++筆記 esp 變量 main style cnblogs radius 區分 fine Shape.h 1 #ifndef SHAPE_H 2 #define SHAPE_H 3 #include<string> 4 using std::str
C++筆記(12):動態內存和智能指針
style round 運算 span tro 運算符 delet 庫函數 針對 動態內存和智能指針 動態內存: 1.針對堆裏面存放的對象 2.使用new delete運算符 3.智能指針:shared_ptr
C++筆記(8):C++異常處理
交互 under nbsp divide 析構函數 nat 花括號 ++ fff 異常處理 C++異常處理機制是一個用來有效地處理運行錯誤的非常強大且靈活的工具,它提供了更多的彈性、安全性和穩固性,克服了傳統方法所帶來的問題.
C++筆記(11):拷貝控制(拷貝移動,構造賦值,析構)
con 對象 構造函數 col let 拷貝控制 支持 運算符 () 控制對象拷貝,賦值,析構 拷貝構造函數,移動構造函數 拷貝賦值運算符,移動賦值運算符 析構函數 -----------------------------------------------
C++筆記005:用面向過程和面向對象方法求解圓形面積
函數 ont 自定義數據類型 行為 能夠 變量 面向對象 數據類型 結構體 結束了第一個hello world程序後,我們來用面向過程和面向對象兩個方法來求解圓的面積這個問題,以能夠更清晰的體會面向對象和面向過程。 第一,面向過程計算圓的面積 程序中我們看到一個標準輸入流c
C++筆記006:關於類的補充
16px 一個 個數 font 字符 style ++ size 數據類型 關於類的補充: 類是一個數據類型(固定大小內存塊的別名),定義一個類,是一個抽象的概念,不會給你分配內存,用數據類型定義變量的時候,才會分配內存。就像char類型,本身作為類型是不會分配內存的,當定
C++筆記004:C++類通俗點說
角色 詞匯 strong 程序設計 oid () 成員函數 兩個 ati 核心: C++的類就是對C語言的結構體進行了擴展,C++的結構體可以包含函數! ------------------------------------------------------ 我們學習C
C++筆記010:C++對C的擴展——register關鍵字增強
訪問 可能 執行 mes 我們 name 編譯報錯 gis cpu register關鍵字:請求編譯器讓變量直接放到CPU內部寄存器裏面,而不是通過內存尋址訪問,速度快。 在C語言中,register修飾的變量不能取地址,去寄存器變量的地址在C語言裏面是會出錯的。 int
Effective C++筆記之一:宣告、定義、初始化與賦值
一.宣告(Declaration) 區分宣告和定義可以讓C++支援分開編譯,宣告常常見於標頭檔案中。原始檔包含標頭檔案之後,就可以使用這個變數,即使沒有看到該變數的定義。 宣告的語法如下: extern int i; // object decl
VIR via C#第一章:CLR的執行模型
什麼是CLR: CLR是微軟為.net的虛擬機器取得名字。它定義可一個程式碼執行的環境(就相當於基於window上的小型的作業系統) CLS:支援CLR的各種語言之間,有各種不同的特性和語法。為了支援各種語言之間的互操作性。