C 學習點滴(多次呼叫同乙個類)

2022-09-10 21:18:30 字數 523 閱讀 8931

在c++程式設計的時候,如果乙個類中的多個函式都呼叫同乙個類的函式,就應該在呼叫類中定義乙個被呼叫類的全域性例項,而不應該在每個函式中都定義乙個被呼叫類的例項。簡單的說,如果a類種的多個函式都呼叫b類的函式,則應該在a類中定義b類的全域性例項,詳見**:

int g_nabc;

class b

b()g_nabc = 0;

~b()

int btesta()

return g_nabc;

int btestb(int a)

return g_nabc + a;

b *pb;

class a

a()pb = new b();

~a()

atesta()

pb->btesta();

pb->btesta();

atestb()

pb->btesta();

pb->btesta();

如果將*pb的定義都拿到函式定義的內部,將造成在後面呼叫類b中的函式的返回結果錯誤。

避免同乙個檔案被include多次

我們知道c 有時會遇到防止標頭檔案重複include問題,常用的方式可以防止.h檔案重複include 的方式為 if defined.define.但是在有些地方發現了這段 if msc ver 1000 pragma once endif msc ver 1000 查了一下也是防止重複inclu...

避免同乙個檔案被include多次

1 ifndef方式 2 pragma once方式 在能夠支援這兩種方式的編譯器上,二者並沒有太大的區別,但是兩者仍然還是有一些細微的區別。方式一 ifndef somefile h define somefile h 一些宣告語句 endif 方式二 pragma once 一些宣告語句 ifn...

同乙個Iterator 多次遍歷遇到的坑

本次需求是因為jpa不支援動態sql拼接,我又懶得去在spring boot上面整合query dsl,所以採取刪除list陣列中不滿足條件的資料開始 string code null 我的業務需求 string posiname null 我的業務需求 上述的例子只是為了講解一下iterator ...