C++模板类嵌套类内部类局部类的区别
生活随笔
收集整理的這篇文章主要介紹了
C++模板类嵌套类内部类局部类的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
模板類就是將類定義成模板的形式。
C++中好像不區分內部類與嵌套類兩個名詞。
內部類與嵌套類都是指在類中定義類。
局部類是指在函數中定義類。
(c++不能在函數中定義函數(python可以)。c++在類中定義的函數也就是成員函數。)
(c++內部類與java內部類最大的區別就是:c++的內部類對象沒有外部類對象的指針,不能訪問外部類對象的非靜態成員;java的非靜態內部類對象有外部類對象的指針,能訪問外部類對象的非靜態成員。
java 中右多個內部類,還有匿名內部類。
?
通過嵌套類定義自己的隊列Queue:
Queue類里面嵌套一個Node類:
編寫Queue.h文件:
#ifndef QUEUE_H_#define QUEUE_H_template<class Type> class Queue{ private:enum {Q_SIZE = 10};class Node{public:Type data;Node * next;Node(const Type data) : data(data), next(0) {}}; Node *front;Node *rear;int curSize;int maxSize; public:Queue(int size = Q_SIZE);~Queue();bool isFull() const;bool isEmpty() const ;bool enQueue(const Type data);bool deQueue();void tarverseQueue() const; };#endif?編寫Queue.cpp文件:
#include <iostream> #include <string> #include <cstring> #include <cstdlib> #include <valarray> #include "Queue.h" using std::cout; using std::endl;template<class Type> Queue<Type>::Queue(int size) : maxSize(size) {front = rear = 0;curSize = 0; }template<class Type> Queue<Type>::~Queue() {Node *tmp;while (front != 0) {tmp = front;front = front->next;delete tmp;} }template<class Type> bool Queue<Type>::isFull() const {return curSize >= maxSize; }template<class Type> bool Queue<Type>::isEmpty() const {return curSize == 0; }template<class Type> bool Queue<Type>::enQueue(const Type data) {if (isFull()) {return false;} Node *node = new Node(data);if (front == 0) {front = node;} else {rear->next = node;} rear = node;curSize++;return true; }template<class Type> bool Queue<Type>::deQueue() {if (isEmpty()) {return false;}Node *tmpNode = front;front = front->next;delete tmpNode;if (front == 0) {rear = 0;}curSize--;return true; }template<class Type> void Queue<Type>::tarverseQueue() const {Node *head = front;while (head != 0) {cout << head->data << endl;head = head->next;} }int main(int argc, char *argv[]) {Queue<int> queue(10);queue.enQueue(11);queue.enQueue(12);queue.tarverseQueue();return 0; }參考資料:
https://blog.csdn.net/solariens/article/details/52314896
https://blog.csdn.net/lw585625/article/details/84085249
總結
以上是生活随笔為你收集整理的C++模板类嵌套类内部类局部类的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 申请信用卡要多少天 影响申请信用卡时间的
- 下一篇: 三姐妹不抽烟接连被查出肺癌 医生提醒:家