社区
C++ 语言
帖子详情
C++一个让我恶心的行为!!!
Big_foolcat
2006-09-15 01:53:18
请在你所用的编译器上编译并运行这段代码,并看看它的行为:
#include <stdio.h>
class A
{
public:
void show( const char * szText )
{
printf( szText );
}
}
int main()
{
A * p = NULL;
p->show();
return 0;
}
请大家说说各自的看法。
...全文
2268
108
打赏
收藏
C++一个让我恶心的行为!!!
请在你所用的编译器上编译并运行这段代码,并看看它的行为: #include class A { public: void show( const char * szText ) { printf( szText ); } } int main() { A * p = NULL; p->show(); return 0; } 请大家说说各自的看法。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
108 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
海嵌
2006-09-19
打赏
举报
回复
class A
{
public:
void show( const char * szText )
{
if(szText == NULL) return;
printf( szText );
}
};
abcwangdragon
2006-09-19
打赏
举报
回复
不明白 为什么总是有很多人对人不对事,就算楼主C++学得不好,说出一个他一个想法给大家讨论讨论,有什么不好。哪有技术完人。
magicalking
2006-09-19
打赏
举报
回复
偶也支持一下楼主,一次给这么多分,呵呵,偶要1分
hkw1113
2006-09-19
打赏
举报
回复
mark
kanshu123
2006-09-19
打赏
举报
回复
呵呵,
涨知识了
kingcalf
2006-09-18
打赏
举报
回复
哈哈 热闹热闹
C++让人“恶心”的地方多着呐,但这是C++的设计原则所需要的啊。
sswweett
2006-09-18
打赏
举报
回复
支持一下楼主。
问题提出来说明楼主有思想。
C++只按照自己的数据和代码内存分配的方法来实现OO,NULL->Function()确实没有体现“自然界的客观逻辑”。但这也是C++高效的原因,也是其隐患。难以想像如果C++所有的函数都用虚函数的效率。。。
al0n9
2006-09-18
打赏
举报
回复
楼主只是问了一个问题而已嘛,竟然被这么多人鄙视,同情楼主
freefishmj
2006-09-18
打赏
举报
回复
好贴啊!!!抛砖引玉
powerpretty
2006-09-18
打赏
举报
回复
如果这段代码可以用java实现的话,它会报空指针异常。看来楼主还没有把类的实质搞清楚。
A * p = NULL;
p->show();
p都为null,怎么可能找到show方法呢?
zenny_chen
2006-09-18
打赏
举报
回复
我不想多说什么………………
请那些认为C++“恶心”的人在此看看,看看Java的“恶心”吧!!!!!!!!!
以下程序在NetBeans5.0中执行:
class Test
{
public Test()
{
}
public static void Hello()
{
System.out.println("Hello, world!");
}
public void Moo()
{
System.out.println("Booooooooo!!!!");
}
}
public class Main {
/** Creates a new instance of Main */
public Main() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Test ch = null;
ch.Hello(); // OK
ch.Moo(); // Compiling succeeds. Report exception in run-time.
}
}
为什么Java在对象引用为空的时候会出现运行时异常?
因为Java的每个成员方法都是 virtual 的,那些自以为是的好好想清楚了!!!!!!
看看调用类方法仍然OK,没错。
zenny_chen
2006-09-18
打赏
举报
回复
我不想多说什么………………
请那些认为C++“恶心”的人在此看看,看看Java的“恶心”吧!!!!!!!!!
以下程序在NetBeans5.0中执行:
class Test
{
public Test()
{
}
public static void Hello()
{
System.out.println("Hello, world!");
}
public void Moo()
{
System.out.println("Booooooooo!!!!");
}
}
public class Main {
/** Creates a new instance of Main */
public Main() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Child ch = null;
ch.Say(); // OK
ch.Moo(); // Compiling succeeds. Report exception in run-time.
}
}
为什么Java在对象引用为空的时候会出现运行时异常?
因为Java的每个成员方法都是 virtual 的,那些自以为是的好好想清楚了!!!!!!
看看调用类方法仍然OK,没错。
fsaok
2006-09-18
打赏
举报
回复
发言都很好,学习中
BluntBlade
2006-09-18
打赏
举报
回复
OO模型和零地址有什么关系?
bbsRoson
2006-09-18
打赏
举报
回复
精神有问题
varphone
2006-09-18
打赏
举报
回复
按照OO模型,这道题应该是不能通过的。
yisong_net
2006-09-18
打赏
举报
回复
学习了~~~
seawalt
2006-09-18
打赏
举报
回复
真恶心,Pascal居然也是这样!~
tangwuquan
2006-09-17
打赏
举报
回复
零地址也是地址阿,我觉得C++这样做是为了能够表示更广泛和更普遍的意义,就像一个函数一样把他的自变量扩展到整个复数的范围!
langzi8818
2006-09-17
打赏
举报
回复
这么多人,这么点分,的确恶心了点
加载更多回复(88)
C++
编程实例100篇
C++
编程实例100篇,里面有很多很基础的编程实例,可以作为参考。
Visual
C++
游戏开发经典案例详解.pdf
Visual
C++
游戏开发经典案例详解.pdf
c++
是什么!!!
最近,网上说
c++
是高级版的Pascal!!!我是真的蒙蔽了(服了当代人的想象力),
c++
是c的高级本!!! 下面介绍一下,来自于百度,本人改变!!!
C++
是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
C++
擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而
C++
就适应的问题规模而论,大小由之。[1]
C++
不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质..
【
C++
核心】一文理解
C++
面向对象(超级详细!)
C++
面向对象的三大特性为:封装、继承、多态
C++
认为万事万物都皆为对象,对象上有其属性和
行为
例如: 人可以作为对象,属性有姓名、年龄、身高、体重…,
行为
有走、跑、跳、吃饭、唱歌… 车也可以作为对象,属性有轮胎、方向盘、车灯…,
行为
有载人、放音乐、放空调… 具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类封装是
C++
面向对象三大特性之一,封装的意义:封装意义一: 在设计类的时候,属性和
行为
写在一起,表现事物语法: 示例1: 设计
一个
圆类,求圆的周长示例代码: 示例2: 设计
一个
学生类
C++
中常见的未定义
行为
文章目录前言总结数组越界问题非法多次释放同一块内存空间不恰当使用容器的erase操作其他 前言 在一些程序语言中,在某些情况下存在着一些未定义
行为
,其中以C和
C++
最为著名,在
C++
中,规定某些操作的
行为
是未定义的。这些未定义
行为
往往会导致一些程序的错误问题的出现,作为一名合格的程序员,应该极力避免这些未定义
行为
的出现,让程序的运行结果不会说出现不确定的情况。 总结 在
C++
中的常见的未定义
行为
主要有以下几种: 数组越界问题 在
C++
中,数组越界问题是
一个
重灾区,也是很多人容易疏忽的点。比如以下的程序 co
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章