社区
茶馆
帖子详情
C++一个让我恶心的行为!!!
Big_foolcat
2006-09-15 01:55:36
请在你所用的编译器上编译并运行这段代码,并看看它的行为:
#include <stdio.h>
class A
{
public:
void show( const char * szText )
{
printf( szText );
}
}
int main()
{
A * p = NULL;
p->show();
return 0;
}
请大家说说各自的看法。
...全文
398
19
打赏
收藏
C++一个让我恶心的行为!!!
请在你所用的编译器上编译并运行这段代码,并看看它的行为: #include class A { public: void show( const char * szText ) { printf( szText ); } } int main() { A * p = NULL; p->show(); return 0; } 请大家说说各自的看法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Big_foolcat
2006-09-16
打赏
举报
回复
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
1、首先,鄙视一下穿着几条裤子或几颗星的在这自以为是,如果您真是个牛人,整天泡在这论坛上就好好帮新手解决几个问题,别没事这在瞎扯
2、我是92年从DOS时代就写程序到现在的程序员,自认为汇编还过得去,用C++的时间可能比某些人要长些,至于内存布局、虚函数表这样的说法就不要在这来糊弄人了
3、这个问题只是想表明一下C++编译器的一个缺陷(至少我认为这在语意上有缺陷)
4、开帖是来找人讨论的,并不是想声讨什么,更不是想来找抽
5、那些嘴里吐不出几颗象牙的请惜墨,并就此打住!
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
LuoGD
2006-09-16
打赏
举报
回复
):
ribut9225
2006-09-16
打赏
举报
回复
LZ如果去VC里发这样的贴会是什么结果???
不知道蒋晟(MVP)会怎么对待这种行为??
LZ即然看不起C++,完全可以不用嘛
还可以VB、C#嘛
BCB2006
2006-09-15
打赏
举报
回复
不是超牛不要起这样的标题,否则会被xx到天亮的...
lqglaive
2006-09-15
打赏
举报
回复
xiaoshi0(Rain)说得有理!
yf2100
2006-09-15
打赏
举报
回复
受不了,LZ先去好好学习一下类吧
#include <stdio.h>
#define SO_BIG 2E9
class A
{
public:
int shit;
void show( const char * szText )
{
printf( szText );
}
};
int main()
{
A * p = NULL;
p->show( "hello world." );
p->shit=SO_BIG; // It's really so-big-shit
return 0;
}
ccrun.com
2006-09-15
打赏
举报
回复
呵呵,一笑而过。
BlueDeepOcean
2006-09-15
打赏
举报
回复
有些胡闹……
jiangshx
2006-09-15
打赏
举报
回复
对楼主挨批深表同情,学无止境!
日立奔腾浪潮微软松下联想
2006-09-15
打赏
举报
回复
在逻辑上,确实有一点问题。
但是由于实现的缘故,方法在编译的时候已经生成了,这是允许的。
在其他语言中,比如OP,也允许这种使用。
lurel
2006-09-15
打赏
举报
回复
我弄不清楚恶心到哪里,而是搂主对C++没学好。
xiaoshi0
2006-09-15
打赏
举报
回复
像你这么说,那static函数连没有指针的时候都可以调用呢,不是更怪!
xiaoshi0
2006-09-15
打赏
举报
回复
废话,你调用的方法都没有涉及到A类里面的成员,当然不出异常了。
类中的函数和数据本来就存在不同的地方的。只要能找到函数的指针,就可以调用函数。
你弄个变量放在类里面,然后你调用那个函数改改值试试!
Big_foolcat
2006-09-15
打赏
举报
回复
发得太急,代码有问题,现在改一下:
#include <stdio.h>
class A
{
public:
void show( const char * szText )
{
printf( szText );
}
};
int main()
{
A * p = NULL;
p->show( "hello world." ); //这里访问的是NULL对象的show !!!
return 0;
}
Maconel
2006-09-15
打赏
举报
回复
楼主想说的是,当一个类实例为NULL时,还是可以调用它的成员函数。
这本来就是允许的,因为函数代码是所有类共有的,一个类的实例,只是包含了成员变量而已。甚至在某些特定的场合,这还是一个代码技巧。
Big_foolcat
2006-09-15
打赏
举报
回复
晕了,p->show("asdf"); 的参数也漏了,我想说明的是,它在运行时居然无异常,我访问的是一个NULL指针呀,汇编里它没访问this指针不会异常,但实在不理解它这样的行为。
fanswc
2006-09-15
打赏
举报
回复
他欠抽
xiaoshi0
2006-09-15
打赏
举报
回复
你想说明什么?你这个代码根本就不对,编译都不能通过。
class定义后面没有;号
Show方法还没有参数。
用NULL指针调用方法,出现异常
给printf函数传递NULL, 出现异常
你到底想说什么?
Big_foolcat
2006-09-15
打赏
举报
回复
补充,上边的代码有误,请在class A定义后补上个分号, class A{};
c++
是什么!!!
最近,网上说
c++
是高级版的Pascal!!!我是真的蒙蔽了(服了当代人的想象力),
c++
是c的高级本!!! 下面介绍一下,来自于百度,本人改变!!!
C++
是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
C++
擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而
C++
就适应的问题规模而论,大小由之。[1]
C++
不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质..
C++
中常见的未定义
行为
文章目录前言总结数组越界问题非法多次释放同一块内存空间不恰当使用容器的erase操作其他 前言 在一些程序语言中,在某些情况下存在着一些未定义
行为
,其中以C和
C++
最为著名,在
C++
中,规定某些操作的
行为
是未定义的。这些未定义
行为
往往会导致一些程序的错误问题的出现,作为一名合格的程序员,应该极力避免这些未定义
行为
的出现,让程序的运行结果不会说出现不确定的情况。 总结 在
C++
中的常见的未定义
行为
主要有以下几种: 数组越界问题 在
C++
中,数组越界问题是
一个
重灾区,也是很多人容易疏忽的点。比如以下的程序 co
C++
:相等运算符:== 和 !=
C++
:相等运算符:== 和 !=语法备注! = 的运算符关键字示例 语法 表达式 **==**表达式 表达式 **!=**表达式 备注 二元相等运算符将严格比较其操作数的相等性或不相等性。 等于( == )和不等于()的相等运算符的 != 优先级低于关系运算符,但其
行为
方式类似。 这些运算符的结果类型是 bool 。 == true 如果两个操作数具有相同的值,则返回等于运算符(); 否则返回 false 。 != 如果操作数的值不相同,则不等于运算符()返回 true ; 否则返回 false 。 !
【
C++
核心】一文理解
C++
面向对象(超级详细!)
C++
面向对象的三大特性为:封装、继承、多态
C++
认为万事万物都皆为对象,对象上有其属性和
行为
例如: 人可以作为对象,属性有姓名、年龄、身高、体重…,
行为
有走、跑、跳、吃饭、唱歌… 车也可以作为对象,属性有轮胎、方向盘、车灯…,
行为
有载人、放音乐、放空调… 具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类封装是
C++
面向对象三大特性之一,封装的意义:封装意义一: 在设计类的时候,属性和
行为
写在一起,表现事物语法: 示例1: 设计
一个
圆类,求圆的周长示例代码: 示例2: 设计
一个
学生类
第一章 开始 |编写
一个
简单的
C++
程序
学习目标: 编写
一个
简答的
C++
程序 学习内容: 1、
一个
简单的
c++
程序 2、输入和输出 3、关于注释 4、控制流 5、类简介 6、书店程序 1.1 编写
一个
简单的
c++
程序 每个
C++
程序都包含
一个
或多个函数(function),其中
一个
必须命名为main。操作系统通过调用main来运行
c++
程序。 int main{ return 0; } 这是非常简单的的main函数,它什么也不干,只是返回给操作系统的
一个
值。
一个
函数的定义包含四部分:返回类型(return
茶馆
552
社区成员
20,062
社区内容
发帖
与我相关
我的任务
茶馆
C++ Builder 茶馆
复制链接
扫一扫
分享
社区描述
C++ Builder 茶馆
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章