大家帮忙看下几行代码

无·法 2009-09-02 11:28:25
大家帮忙分析下下面的代码,.output这一句到底执行的什么东西?为什么没有报错?
#include <iostream.h>
struct point{
private:
int x;
void output(){
cout<<x;
}

};
void main(){
point p;
p.output;
}
...全文
101 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 brookmill 的回复:]
void main(){
    point p;
    p.output; // 这行有可能被编译器优化掉了。因为它没有任何实际意义,编译器有可能自作主张把它删掉
}
看看编译出来的汇编代码吧。
[/Quote]
看样子只有这样理解了,汇编更不晓得了。。。
brookmill 2009-09-03
  • 打赏
  • 举报
回复
void main(){
point p;
p.output; // 这行有可能被编译器优化掉了。因为它没有任何实际意义,编译器有可能自作主张把它删掉
}
看看编译出来的汇编代码吧。
无·法 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 mstlq 的回复:]
引用 7 楼 sysdzw 的回复:
引用 4 楼 mstlq 的回复:
珍爱生命,原理vc6.0……
换个编译器吧……
楼主的代码将通不过编译……

事实的通过编译了,如果p.output改成p.output()才会编译不通过。

我就在想可能p.output是访问的output的地址,然后我改成cout < <(p.output)却编译不通过。

那楼我打错字了……
我的意思是请楼主远离vc6……
就vc6那破玩意还能那样整6
[/Quote]
不好意思,我刚学,资料是vc6版的,另外我看到公司用6这版本的比较多啊,而且好像很多成熟软件也是用这做的好像。
mstlq 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sysdzw 的回复:]
引用 4 楼 mstlq 的回复:
珍爱生命,原理vc6.0……
换个编译器吧……
楼主的代码将通不过编译……

事实的通过编译了,如果p.output改成p.output()才会编译不通过。

我就在想可能p.output是访问的output的地址,然后我改成cout < <(p.output)却编译不通过。
[/Quote]
那楼我打错字了……
我的意思是请楼主远离vc6……
就vc6那破玩意还能那样整6
无·法 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 legend_z1916 的回复:]
output()是private,所以在main()中不能p.output();
[/Quote]
这个我明白,我的疑惑在7楼,个人感觉private情况应该连output的地址都不让访问的。
Legend_z1916 2009-09-02
  • 打赏
  • 举报
回复
output()是private,所以在main()中不能p.output();
无·法 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 v2sun 的回复:]
我的会报错,即使改成标准形式(using namespace std;)。不知你用的哪个编译器。
C/C++ code#include<iostream>usingnamespace std;struct point{private:int x;public://改成publicvoid output(){
cout<<x;
}

};int main(){
point p;
p.output(); //没有(),不知何谓}
[/Quote]
我的是vc6 sp6
NewJerryj 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 sysdzw 的回复:]
大家帮忙分析下下面的代码,.output这一句到底执行的什么东西?为什么没有报错?
C/C++ code#include<iostream.h>struct point{private:int x;void output(){
cout<<x;
}

};void main(){
point p;
p.output;
}
[/Quote]

什么编译环境?这么牛!
无·法 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mstlq 的回复:]
珍爱生命,原理vc6.0……
换个编译器吧……
楼主的代码将通不过编译……
[/Quote]
事实的通过编译了,如果p.output改成p.output()才会编译不通过。

我就在想可能p.output是访问的output的地址,然后我改成cout<<(p.output)却编译不通过。
点墨 2009-09-02
  • 打赏
  • 举报
回复
我的会报错,即使改成标准形式(using namespace std;)。不知你用的哪个编译器。
#include <iostream>
using namespace std;
struct point{
private:
int x;
public: //改成public
void output(){
cout<<x;
}

};
int main(){
point p;
p.output(); //没有(),不知何谓
}
mstlq 2009-09-02
  • 打赏
  • 举报
回复
不会输出的……
p.output不是p.output();
这里不是调用函数……
只是写了一行没有意义的东西而已。
p.output指的是p.output这个函数的地址

跟下面的代码其实没什么区别……

#include <iostream.h>
struct point{
private:
int x;
void output(){
cout<<x;
}

};
void main(){
point p;
55;//放个表达式(数字)在此,vc6不报错的,不过没有意义……
}
mstlq 2009-09-02
  • 打赏
  • 举报
回复
珍爱生命,原理vc6.0……
换个编译器吧……
楼主的代码将通不过编译……
xu044 2009-09-02
  • 打赏
  • 举报
回复
1.output()是私有的
2.output是函数,应写为p.output()
kakashi0309 2009-09-02
  • 打赏
  • 举报
回复
cout<<x; //x值不确定 这个不会报错的
dclchj 2009-09-02
  • 打赏
  • 举报
回复
加上
using namespace std;

应该在调试的时候会报 wrong吧?
输出的是x对应内存中的值(不确定是什么)(按int型输出)
大神,大哥,帅哥,美女们,如果大家觉得好的,麻烦再github上面点个赞,谢谢大家,点赞的都是大好人啊 https://github.com/MJCIOS/MJCSegmentInterface github上面项目持续更新,有最新版本,新的功能,上面都会第一时间更新,麻烦大家进入github上面查看,谢谢...也谢谢审核官早点审核成功..也希望cocoachina增加一个编辑功能,这样我可以修改之前上传的代码了,要不然每次都要上传新的代码,,然后再删除以前的代码,实在是太麻烦了,谢谢... ☆☆☆ “MJCSegmentInterface分段控制器” ☆☆☆ 一款简单的类似百思不得姐主页导航栏下方的那个分段界面的控件,类似王者荣耀助手的聊天模块的导航栏下方的分段界面控件等等,简单的说,这是一款分段界面选择器 ☆☆ 如何导入使用框架方法 ☆☆ 可以打开 https://github.com/MJCIOS/MJCSegmentInterface 将项目下载下来,将MJCSlideInterface文件夹放入自己的项目中 项目已支持pod导入,pod 'MJCSegmentInterface',如果没法导入,可以先[pod repo update]更新整个.cocoapods下的所有库... 有啥问题联系我QQ292251588,希望大神们和我多多交流,和大神们一起学习..... 技术交流群612845323,希望和大神们一起学习多多交流,互相学习些技术..... 希望大家多多支持,如果觉得好用,多多帮忙推荐,谢谢大家,谢谢大神,有啥问题,可以提给我... ☆☆ MJCSegmentInterface分段控制器创建(几行代码设置即可使用) ☆☆ NSArray *titlesArr = @[@"荣耀",@"联盟",@"DNF",@"CF",@"飞车",@"炫舞",@"天涯明月刀"]; MJCSegmentFace *segmentsface = [[MJCSegmentFace alloc]init]; segmentsface.frame = CGRectMake(0,64, MJCScreenWidth,MJCScreenHeight); [lala intoTitlesArray:titlesArr hostController:self]; [self.view addSubview:segmentsface]; MJCTestViewController *vc1 = [[MJCTestViewController alloc]init]; MJCTestTableViewController *vc2 = [[MJCTestTableViewController alloc]init]; MJCTestViewController1 *vc3 = [[MJCTestViewController1 alloc]init]; MJCTestViewController *vc4 = [[MJCTestViewController alloc]init]; MJCTestViewController *vc5 = [[MJCTestViewController alloc]init]; NSArray *vcarrr = @[vc1,vc2,vc3,vc4,vc5]; [lala intoChildControllerArray:vcarrr]; 可自行修改各个属性,具体属性接口可进入项目查看.. /** 添加控制器的方法(添加控制器按照控制器添加的先后顺序与按钮对应的 */ -(void)intoChildControllerArray:(NSArray *)childControllerArray; /** 添加标题栏的方法 */ -(void)intoTitlesArray:(NSArray *)titlesArray hostController:(UIViewController *)hostController;
大神,大哥,帅哥,美女们,如果大家觉得好的,麻烦再github上面点个赞,谢谢大家,点赞的都是大好人啊 https://github.com/MJCIOS/MJCSegmentInterface github上面项目持续更新,有最新版本,新的功能,上面都会第一时间更新,麻烦大家进入github上面查看,谢谢...也谢谢审核官早点审核成功..也希望cocoachina增加一个编辑功能,这样我可以修改之前上传的代码了,要不然每次都要上传新的代码,,然后再删除以前的代码,实在是太麻烦了,谢谢... ☆☆☆ “MJCSegmentInterface分段控制器” ☆☆☆ 一款简单的类似百思不得姐主页导航栏下方的那个分段界面的控件,类似王者荣耀助手的聊天模块的导航栏下方的分段界面控件等等,简单的说,这是一款分段界面选择器 ☆☆ 如何导入使用框架方法 ☆☆ 可以打开 https://github.com/MJCIOS/MJCSegmentInterface 将项目下载下来,将MJCSlideInterface文件夹放入自己的项目中 项目已支持pod导入,pod 'MJCSegmentInterface',如果没法导入,可以先[pod repo update]更新整个.cocoapods下的所有库... 有啥问题联系我QQ292251588,希望大神们和我多多交流,和大神们一起学习..... 技术交流群612845323,希望和大神们一起学习多多交流,互相学习些技术..... 希望大家多多支持,如果觉得好用,多多帮忙推荐,谢谢大家,谢谢大神,有啥问题,可以提给我... ☆☆ MJCSegmentInterface分段控制器创建(几行代码设置即可使用) ☆☆ NSArray *titlesArr = @[@"荣耀",@"联盟",@"DNF",@"CF",@"飞车",@"炫舞",@"天涯明月刀"]; MJCSegmentFaceControl *segmentsface = [[MJCSegmentFaceControl alloc]init]; segmentsface.frame = CGRectMake(0,64, MJCScreenWidth,MJCScreenHeight); [lala intoTitlesArray:titlesArr hostController:self]; [self.view addSubview:segmentsface]; MJCTestViewController *vc1 = [[MJCTestViewController alloc]init]; MJCTestTableViewController *vc2 = [[MJCTestTableViewController alloc]init]; MJCTestViewController1 *vc3 = [[MJCTestViewController1 alloc]init]; MJCTestViewController *vc4 = [[MJCTestViewController alloc]init]; MJCTestViewController *vc5 = [[MJCTestViewController alloc]init]; NSArray *vcarrr = @[vc1,vc2,vc3,vc4,vc5]; [lala intoChildControllerArray:vcarrr]; 可自行修改各个属性,具体属性接口可进入项目查看.. /** 添加控制器的方法(添加控制器按照控制器添加的先后顺序与按钮对应的 */ -(void)intoChildControllerArray:(NSArray *)childControllerArray; /** 添加标题栏的方法 */ -(void)intoTitlesArray:(NSArray *)titlesArray hostController:(UIViewController *)hostController;
统一所有缩略图比例问题的“99%完美”解决方案[冷火原创] 很多网站都需要上传大量的图片,很多情况下图片的尺寸,长宽比都互不相同,在页面显示时如果能分别指定其显示比例还好说,如果不能单独设定,例如在最常用的动易文章幻灯片显示和图片新闻列表显示里,都使用到相同的图片比例,图片变形现象很严重。 目前动易提供了缩略图功能,从一定程度上解决了这一问题。但即使是缩略图的高级算法,在统一全部图片的比例方面,用的是剪裁的办法,虽然比较管用,但图片的不完整也带来一些遗憾。 翻看论坛,这个问题给大家带来很多烦恼和遗憾。这几天做网站为这个难题苦苦考虑了好一段时间,想出来一些思路,看论坛里有的朋友的建立也与我的想法不谋而合,就是给图片补上相同比例的边框,让图片在边框内完整显示。 经过几天的钻研,一天的编写,目前已经成功地解决了这一难题!!效果堪比目前的高级算法,如果目前的高级算法是“剪裁法”的话,我的办法就是“补充法”。 先来看几张演示…… 以下各种效果可以任意设置。实现的方法及源码在二楼。 这个办法完全使用目前网站支持的AspJpeg组件来实现,当然如果不集成到动易系统中去,是没法使用的。有组件限制,我的水平也不行,无力更改动易系统的。强烈建议动易加上这个功能,可以与目前的高级算法并列,或剪裁、或补充,让大家自由选择。 其实实现的基本思路很简单,就是用AspJpeg组件的合并图片,即“图片水印”的功能。现在一般的方法是给上传的图片加上一个固定的图片水印。其实我们可以反过来用,把上传的图片当成水印,加到一个灰色背景图像上即可。几行代码就解决问题。 当然了,要实现图片的美观化,还需要多做点辅助性工作。偶从没写过ASP程序,昨天花了一天时间,边学边写,勉强凑出了基本功能,估计还会有错误,对于输入错误的情况也没有做限制,现在把源码放上来,大家帮忙测试吧!webboy看看,如果还行,请修改后集成到动易系统中。 另外,有很多人希望缩略图上不要加水印了,估计现在的系统是先给图片加水印,再保存缩略图,建议把顺序倒过来,先存缩略图,再加水印。 源码里我写了详细的说明,希望对大家能有所帮助。测试时需要安装aspjpeg组件,从浏览器中打开“1.asp”一看就明白啦。

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧