您好,登錄后才能下訂單哦!
本篇內容介紹了“C++的struct與class怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
struct 在 C 語言中已經有了自己的含義,必須繼續兼容
在C++ 中提供了新的關鍵字 class 用于類定義
class 和 struct 的用法是完全相同的
在用 struct 定義類時,所有成員的默認訪問級別為 public
在用 class 定義類時,所有成員的默認訪問級別為 private
如下:
下面看一段使用 class 的代碼:
#include <stdio.h> struct A { // defualt to public int i; // defualt to public int getI() { return i; } }; class B { // defualt to private int i; // defualt to private int getI() { return i; } }; int main() { A a; B b; a.i = 4; printf("a.getI() = %d\n", a.getI()); b.i = 4; printf("b.getI() = %d\n", b.getI()); return 0; }
下面為輸出結果,運行報錯,指出 class 聲明的類,所有成員的默認訪問級別為 private
在 class B 里面加個 public 即可,如下:
class B { public: // defualt to private int i; // defualt to private int getI() { return i; } };
下面為輸出結果:
C++ 中的類支持聲明和實現的分離
將類的實現和定義分開
.h頭文件中只有類的聲明
成員變量和成員函數的聲明
.cpp源文件中完成類的其它實現
成員函數的具體實現
需求:開發一個用于四則運算的類
提供 setOperator 函數設置運算類型
提供 setParameter 函數設置運算參數
提供 result 函數進行運算
其返回值表示運算的合法性
通過引用參數返回結果
代碼如下:
Operator.h
#ifndef _OPERATOR_H_ #define _OPERATOR_H_ class Operator { private: char mOp; double mP1; double mP2; public: bool setOperator(char op); void setParameter(double p1, double p2); bool result(double& r); }; #endif
Operator.cpp
#include "Operator.h" bool Operator::setOperator(char op) { bool ret = false; if( (op == '+') || (op == '-') || (op == '*') || (op == '/') ) { ret = true; mOp = op; } else { mOp = '\0'; } return ret; } void Operator::setParameter(double p1, double p2) { mP1 = p1; mP2 = p2; } bool Operator::result(double& r) { bool ret = true; switch( mOp ) { case '/': if( (-0.000000001 < mP2) && (mP2 < 0.000000001) ) { ret = false; } else { r = mP1 / mP2; } break; case '+': r = mP1 + mP2; break; case '*': r = mP1 * mP2; break; case '-': r = mP1 - mP2; break; default: ret = false; break; } return ret; }
test.cpp
#include <stdio.h> #include "Operator.h" int main() { Operator op; double r = 0; op.setOperator('/'); op.setParameter(9, 3); if( op.result(r) ) { printf("r = %lf\n", r); } else { printf("Calculate error!\n"); } return 0; }
下面為輸出結果:
“C++的struct與class怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。