error C2648: “MyDoublyLinkedlist<int>::length”: 将成员作为默认参数使用要求静态成员
来源:互联网 发布:软件开发设计文档 编辑:程序博客网 时间:2024/05/30 04:30
C++中只能将静态成员设置为默认参数,默认参数不能是一个普通变量。
代码如下(insert函数有误):
#pragma once#include<iostream>template<typename Element> class MyDoublyLinkedlistNode;template<typename Element>class MyDoublyLinkedlist;template<typename Element>class MyDoublyLinkedlistNode{template<typename X> friend class MyDoublyLinkedlist;public:MyDoublyLinkedlistNode(Element nodeValue) :nodeValue(nodeValue){}private:Element nodeValue;MyDoublyLinkedlistNode<Element>* prev = nullptr,* next = nullptr;};template<typename Element> class MyDoublyLinkedlist{public:MyDoublyLinkedlist():header(nullptr){};MyDoublyLinkedlist(Element firstNodeValue) :header(new MyDoublyLinkedlistNode<Element>(firstNodeValue)),length(1){}bool isEmpty(){ return header == nullptr; }MyDoublyLinkedlistNode<Element>* searchByValue(Element searchValue){MyDoublyLinkedlistNode<Element>* tmpPoint = header;while (tmpPoint != nullptr){if (tmpPoint->nodeValue == searchValue)break;elsetmpPoint = tmpPoint->next;}return tmpPoint;}MyDoublyLinkedlistNode<Element>* insert(Element insertValue, size_t index=length)//insert back {if (index > length)index = length;MyDoublyLinkedlistNode<Element>* tmpPoint = header;while (index != 0){tmpPoint = tmpPoint->next;}MyDoublyLinkedlistNode<Element>* trans = tmpPoint->next;tmpPoint->next = new MyDoublyLinkedlistNode<Element>(insertValue);tmpPoint->next->next = trans;if (trans != nullptr){trans->prev = tmpPoint->next;}if (tmpPoint != header){tmpPoint->next->prev = tmpPoint;}++length;}void print(){MyDoublyLinkedlistNode<Element>* tmpPoint = header;while (!(tmpPoint == nullptr)){std::cout << tmpPoint->nodeValue << " ";tmpPoint = tmpPoint->next;}std::cout << std::endl;}private:MyDoublyLinkedlistNode<Element>* header = nullptr;size_t length = 0;};
阅读全文
0 0
- error C2648: “MyDoublyLinkedlist<int>::length”: 将成员作为默认参数使用要求静态成员
- 为什么不能使用成员变量的值作为成员函数的默认参数?
- 成员变量作为成员函数的默认参数
- 成员函数默认参数
- 将对象作为参数传递给成员函数
- 将成员函数作为std::for_each的第三个参数
- C/C++笔试系列--如何利用成员变量作为成员函数的默认参数
- 如何使用带参数的对象作为类成员
- linux多线程创建时使用类成员函数作为参数
- linux多线程创建时使用类成员函数作为参数
- linux多线程创建时使用类成员函数作为参数
- c++成员函数默认参数
- 静态成员的使用
- 静态成员的使用
- 静态成员的使用
- 类和对象:数据成员之使用默认参数初始化
- 非静态成员作为线程函数
- 非静态类成员作为线程函数
- 选择排序--Java版
- REQUIRE.JS和SEA.JS模块化加载JS
- ExpandableListView多级列表(二级列表)
- 现货黄金代理哪个平台返佣比较高
- ImageMagick 解决多线程(openMP)运行时导致CPU暴增到100%的方法
- error C2648: “MyDoublyLinkedlist<int>::length”: 将成员作为默认参数使用要求静态成员
- Database Configuraion Assistant开启监听
- 水题贪心今年暑假不AC HDU
- vsFTP使用教程
- Swift与OC的区别
-  非法字符 原因 以及解决办法
- R语言关联分析
- Lua和C++交互详细总结
- 文章标题