【Coding】C++诡异问题之一
来源:互联网 发布:java void是什么意思 编辑:程序博客网 时间:2024/05/20 17:24
代码1:
#include <stdio.h>#include <iostream>using namespace std;class node{public:node();~node();private:int num;node* next;};int main(){//runtiem error//node* p1 = new node;//runtime error//node* p2 = new node();//runtiem error//node n1;node n2();return 0;}
解决上面的问题很容易,只要把构造函数和析构函数实现了就行。
代码2:
#include <stdio.h>#include <iostream>using namespace std;class node{public:node(){cout << (counter++) << endl;}~node(){};private:static int counter;int num;node* next;};int node::counter = 1;int main(){cout << "p1:";node* p1 = new node;cout << "p2:";node* p2 = new node();cout << "n1:";node n1;cout << "n2:";node n2();return 0;}输出:
p1:1p2:2n1:3n2:这样我们可以发现为什么代码1中最后一条语句不报错了,它其实是一句函数声明。
从代码1和代码2中得到一个体会和两个问题:
体会是在类的声明中写构造函数和析构函数的时候需要实现。
问题是1.node n1;这句语句是变量的声明还是定义,是在定义的时候就初始化了?2.node* p1 = new node;和node* p2 = new node();这两句语句有什么不同?
- 【Coding】C++诡异问题之一
- 内存数据库研发日志之一.共享内存的诡异问题
- objective-c switch 遇到的诡异问题
- DES 算法 在C++builder中出现的诡异问题
- 诡异的C程序
- C语言之诡异
- c语言很诡异
- 诡异的Objective-C
- c的诡异用法
- c语言中的"诡异"
- LevelDB源码分析之一:coding
- 一个诡异的问题
- tabindex的诡异问题
- 一个诡异问题
- 世界诡异问题
- symbian 诡异问题
- PIC18诡异的问题
- MideaPlayer的诡异问题
- 面试题整理
- Linux下Mysql tomcat 自启动
- Mysql HA实现MYSQL的高可用
- jquery ajax struts2 级联下拉框 动态生成省市
- DesignPattern_AspNet_Part7
- 【Coding】C++诡异问题之一
- JLink Error: JTAG Timeout during adaptive clocking: RTCK did not respond.
- Android shape使用
- I/O Completion Ports学习
- 大型电子商务网站架构之-前端优化
- 售前杂谈(从QQ群讨论中摘取的)
- Socket
- 接口隔离原则【Interface Segregation Principle】
- Wireshark的过滤规则