巢狀呼叫易錯問題

2021-06-26 22:30:46 字數 1005 閱讀 3254

general.h內容如下:

#pragma once

#include "h1.h"

#include 

struct tt

;再建乙個h1.h

檔案,內容如下:

#include "general.h"

using namespace std;

void print(tt t)

main.cpp裡面呼叫

print

函式,提示錯誤,說未申明的識別符號。。請問為什麼??

main部分

#include "general.h"

using namespace std;

int main()

在main

裡面include"h1.h"

的話就不會有問題了,但是這樣為什麼不行??

general.h檔案,宣告結構體

tt#pragma once

/*這裡不需要#include "h1.h"

*/#include 

struct tt

;h1.h宣告

print

方法,使用了結構體

tt,需要

#include "general.h"

,因為這個檔案裡包含了對

tt的宣告

#include "general.h"

using namespace std;

void print(tt t)

main部分

/*這裡不是#include "general.h"

,而是#include "h1.h"

,因為h1.h

中即包含了

print

方法的宣告,同時也

#include "general.h"

包含了對

tt結構體的宣告

*/#include "h1.h"

using namespace std;

int main()

常見易錯問題

型別轉換 一 const cast 去除常量特性 二 static cast 普通型別轉換和類繼承的父指標到子類指標的轉換 引用一樣 注意 不能用於物件本身,只轉換不進行執行時型別檢查 不能進行的轉換 1 p int 2 aobj bobj 3 const non const 總的來說,沒有意義的轉...

C C 易錯問題分析

傳給函式形參的實參是作為拷貝傳入,在函式體內改變作為拷貝的實參2是不會影響到傳入的實參1的。規則 1 如果想要通過函式介面改變傳入的數值,那麼需要傳入該數值的指標。2 如果想要改變傳入的指標所指向的值,那麼需要傳入該指標的指標。總之,需要深一層。int fun int fun1 修改方法 由上層呼叫...

細節問題 易錯問題 zz錯誤

一 關於精度的問題 float精度是2 23,能保證6位。double精度是2 52,能保證15位。但是預設float和double都只能顯示6位,再多需要 include 然後在輸出語句之前插入cout setprecision 20 強制輸出小數字。float fval 1.32121212f ...