关于c++中cout与分号的一个细节

代码如下:

 1 #include <iostream>
 2
 3 class foo {
 4 public:
 5     const char * get_key();
 6     void get_data();
 7     const char * get_key_and_data();
 8
 9     int offset;
10     int sizes;
11 };
12
13 const char * foo::get_key()
14 {
15     offset=100;
16     sizes=9;
17     return "hello";
18 }
19
20 void foo::get_data()
21 {
22     get_key();
23 }
24
25 const char * foo::get_key_and_data()
26 {
27     return get_key();
28 }
29
30 int main()
31 {
32     foo f;
33
34     f.offset = 1;
35     f.sizes = 1;
36
37 //A:
38     std::cout << f.get_key() << ": "
39         << f.offset << "\t"
40         << f.sizes << std::endl;
41
42 //B:
43     std::cout << f.get_key() << ": " ;
44     std::cout << f.offset << "\t" ;
45     std::cout << f.sizes << std::endl;
46
47     return true;
48 }

注意A中没有分号,B有分号。看看输出:

hello: 1    1
hello: 100    9

大概就是说没有分号,这个语句还没有完成,也没有改变offset和sizes的值。

时间: 2024-08-09 06:33:26

关于c++中cout与分号的一个细节的相关文章

JavaScript语法中分号使用的细节

关于JavaScript中可选分号的问题有几个细节要注意: 一般来说,JavaScript和其他语言一样都是使用分号,将语句隔开,但在JavaScript中,如果语句各自独立一行,有时也可以省略分号的 细节1: 如果当前语句和随后的非空格字符不能当成一整体来解析的话,JavaScript就在当前语句行结束处自动填补分号 var a a = 3 console.log(a); JavaScript将上述代码解析为: var a; a=3; console.log(a); 第一行代码 var a自动

C/C++中printf和C++中cout的输出格式

C/C++中printf和C++中cout的输出格式 一. Printf 输出格式 C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型,其中方括号[]中的项为可选项.各项的意义介绍如下: 1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示: 表示输出类型的格式字符 格式字符意义 a 浮点数.十六进制数字和p-计数法(C99) A 浮点数.十六进制数字和p-计数法(C99) c 输出单个字符 d 以十进制形式输出带符号整数(正数不输出符号) e 以指数形式输

c语言中如何设计和编写一个应用系统?

C程序中,如何设计和编写一个应用系统? 一. C语言文件的操作 1. 文件操作的基本方法: C语言将计算机的输入输出设备都看作是文件.例如,键盘文件.屏幕文件等. 向屏幕输出一个信息,例如"Hello"是 #include.h> int main() { printf("Hello\\n"); } 从键盘接收一个字符串然后显示是 #include.h> int main() { char a[10]; scanf("%s",&

System.getProperty()引起的悲剧--您的主机中的软件中止了一个已建立的连接

我已无法形容此刻我的心情.. 本来是已经写好的netty5的demo程序,server和client之间创建tcp长连接的..然后随便传点数据的简单demo..然后今天试了一下tcp粘包的例子,用到了System.getProperty()方法,悲剧就从此产生了..改好了程序一运行,服务器端正常启动,然后client端怎么也起不来,一启动就自动退出,完善了一下client端的异常捕获,然后就能偶尔报出些异常信息: 您的主机中的软件中止了一个已建立的连接 恰巧今天装了一些新软件和插件,挨个全都卸载

IOS中使用.xib文件封装一个自定义View

1.新建一个继承UIView的自定义view,假设类名叫做 MyAppVew #import <UIKit/UIKit.h> @class MyApp; @interface MyAppView : UIView @property(strong,nonatomic) MyApp*app; +(instancetype)appView; @end MyAppView.h #import "MyAppView.h" #import "MyApp.h" @i

在windows 2008 R2中SQl Server 2008中代理启动失败的一个原因总结

启动SQL代理的时候报错如下: 关调用实时(JIT)调试而不是此对话框的详细信息,请参见此消息的结尾. ************** 异常文本 **************System.NullReferenceException: 未将对象引用设置到对象的实例. Server stack trace: 在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ObjectExplorer.FindObjectExplore

BCB 中 Application->CreateForm 和 New 的一个区别

Application->Create 和 NEW 的一个区别 最近写windows服务的时候,恰巧碰到一个问题.我建立了一个DataModal,然后在Datamodal的OnCreate 事件中创建了另外一个类A的对象a.. a会去访问DataModal的全局指针.相当于下面这个东西: 发现,a访问的DataModal的全局指针有如下2种情况, 如果使用Application->CreateForm 创建,则a可以访问到DataModal的全局指针.即,用下面的方式创建: ? 如果用new的

4.6 找出二叉树中指定节点的下一个节点(中序后继),假定每个节点有父指针。

5 / 2 6 / \ 1 4 7 / 3 class Node{ Node left; Node right; Node parent; int val; } /** 1.如果有右子树,则结果为右子树的最左节点. 2.如果没有右子树,则需要回到父节点,如果当前节点是父节点的左子树,则父节点就是结果,如果不是继续向上再找父节点. */ public TreeNode inorderSucc(TreeNode n){ if(n==null) return null; if(n.right!=nul

输入任意一个字符串,如:“abDEe23dJfd343dPOddfe4CdD5ccv!23rr”。 取出该字符串中所有的字母组成一个新的字符串。

#include <stdio.h>#include <string.h> /*输入任意一个字符串,如:“abDEe23dJfd343dPOddfe4CdD5ccv!23rr”. 取出该字符串中所有的字母组成一个新的字符串.*/ void main(){ char oldStr[100] = "abDEe23dJfd343dPOddfe4CdD5ccv!23rr"; char newStr[100]; int i = 0,j = 0; for(i = 0; i