一个永远无法被初始化的指针:
来源:互联网 发布:java decimalformat 编辑:程序博客网 时间:2024/05/17 22:54
c++中的禁用构造,够狠的,连自己的成员都构造不成了!
class A{
private:
A(){}
static A* pa;
};
这样pa就永远无法初始化,如下代码会报错:
#include <cstdlib>#include <iostream>#include <stdio.h>using namespace std; class A{private: friend class ASister; A(){} static A* pa;public: void hello() const { cout<<"Hello!"<<endl; }};static A::A*pa = new A();//const static A pa; int main(int argc, char* argv[]){ a->hello(); system("PAUSE");}报错如下:10 C:\Users\Administrator\Documents\main.cpp `A::A()' is private
这就是C++的一个大缺陷。
#include <cstdlib>#include <iostream>#include <stdio.h>using namespace std; class A{private: A(){} static A* pa;public: void hello() const { cout<<"Hello!"<<endl; } static A* getA(){ if(!pa)pa = new A(); return pa; }};A*A::pa;//const static A pa; int main(int argc, char* argv[]){ A* a = A::getA(); a->hello(); system("PAUSE");}
时隔几年回过头来再看,还是蛮有意思。呵呵。C++语法真怪异。
阅读全文
0 0
- 一个永远无法被初始化的指针:
- 一个看上去永远无法做完的项目
- 初始化一个指针的方法
- 《你永远都无法叫醒一个装睡的人》经典语录
- 1994年,电影的颠峰,永远无法被超越[转载]
- C++ 一个永远无法点击到的按钮(窗口的显示与隐藏)
- 如何初始化一个指针数组
- 记录一个指针问题(内存空间的初始化)
- 关于字符串指针初始化std::string的一个小问题
- 为什么未初始化的指针会指向一个不确定地址
- 一封永远无法投递的信.......
- INIT_LIST_HEAD无法初始化链表指针
- 指针的初始化
- 指针数组的初始化
- 字符指针的初始化
- 指针的初始化
- 指针的初始化
- 指针的初始化
- android 获取应用各类型标准目录方法
- 【词汇详解】池机制详解
- 再次修订后的版本。。。。。。1.0(发布版,射线求交三角形)
- [总结]C++真是博大精深(一)
- Jmeter Aggregate Report 与 Summary Report 分析
- 一个永远无法被初始化的指针:
- java 用itextpdf读写pdf文件
- C++对象内存布局:单继承,多继承,虚继承
- 约数个数定理and约数和定理
- 有关于用javaScript点击一次提交数据却发送了两次或者多次的问题
- c++中的单态模式。(就是不知道为什么用typedef)
- Astar2017资格赛1005 寻找母串
- 二叉树的实现
- int * const a, 和 const int* a,const PInt a;