| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 640 人关注过本帖
标题:which way is standard C++?
只看楼主 加入收藏
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
 问题点数:0 回复次数:6 
which way is standard C++?

/*---------------------------------------------------------------------------
File name: stdc++.cpp
Author: HJin (email: fish_sea_bird [at] yahoo [dot] com )
Created on: 8/29/2007 15:51:23
Environment: Windows XP Professional SP2 English +
Visual Studio 2005 v8.0.50727.762

Following C++ source code compiles under VC 2005. It won't compile under g++.

Your task is to select the delcarations which are conformant to standard C++.

*/

#include <iostream>
using namespace std;

class A
{
public:
A(int i_=0) : i(i_)
{
}

private:
int i;
};

int main()
{
// which way is standard C++?

A* pA1 = new A; // A
A* pA2 = new A(); // B
A* pA3 = new A[5](); // C
A* pA4 = new A[5]; // D

return 0;
}

[此贴子已经被作者于2007-8-30 6:51:52编辑过]

搜索更多相关主题的帖子: standard 
2007-08-30 06:48
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
ABCD,就现在我想搞的opengl(或者是d3d)都不是标准的了
已经不追求了

[此贴子已经被作者于2007-8-30 9:12:32编辑过]

2007-08-30 09:12
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 

我想 AD 应该没什么疑问吧。

BC的话,我所了解的有C这样的方式。

在c++里有个值初始化的概念。

比如 vector<TYPE> ivec(10);
如果TYPE是类类型,那么用默认构造函数初始化,如果为内置类型,就用0初始化。这就是值初始化。

在动态分配数组时,可以在 int *pi = new int[n]() 加一个括号,表示值初始化。
显然这只针对内置类型,对于类类型,加不加都采用默认构造函数初始化。

但是我也很迷惑,因为即使这样做了,仍然不能达到初始化为0的目的。但是编译器又支持这样的写法。

这点我是从c++ primer上了解的,所以我想应该是标准c++行为。


Fight  to win  or  die...
2007-08-30 11:45
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 
AD?

Think a little bit more. Or refer to Stroustrup's book.

I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-08-30 12:01
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
AD也有点~~~~~~~~因为带参数加默认值的构造函数和默认构造函数毕竟不一样。

那你是怎么想的?

[此贴子已经被作者于2007-8-30 12:17:06编辑过]


Fight  to win  or  die...
2007-08-30 12:13
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 
I voted B and D, although A will be accepted by most compliers.

C is okay for VC, but not for g++.

I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-08-30 12:53
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
混淆了。

呵呵,但是要我写肯定不会这样写!尽量避免!

Fight  to win  or  die...
2007-08-30 13:02
快速回复:which way is standard C++?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047623 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved