y**b 发帖数: 10166 | 1 类里面定义下面这么一个静态变量竟然无法编译:
static const unsigned int DEFAULT_CAPACITY = 30;
只得借用enum来实现, 可是带来一些其它问题. .net 2003这么新的东西,
怎么会不支持呢? linux下面的g++都支持啊. |
st 发帖数: 1685 | 2 use readonly?
【在 y**b 的大作中提到】 : 类里面定义下面这么一个静态变量竟然无法编译: : static const unsigned int DEFAULT_CAPACITY = 30; : 只得借用enum来实现, 可是带来一些其它问题. .net 2003这么新的东西, : 怎么会不支持呢? linux下面的g++都支持啊.
|
y**b 发帖数: 10166 | 3 what does it mean?
【在 st 的大作中提到】 : use readonly?
|
st 发帖数: 1685 | 4 The readonly keyword is a modifier that you can use on fields. When a
field declaration includes a readonly modifier, assignments to the
fields introduced by the declaration can only occur as part of the
declaration or in a constructor in the same class.
You can assign a value to a readonly field only in the following
contexts:
When the variable is initialized in the declaration, for example:
public readonly int y = 5;
For an instance field, in the instance constructors of the class that
contain
【在 y**b 的大作中提到】 : what does it mean?
|
st 发帖数: 1685 | 5 btw, C# supports const ah... what's your problme? what's your code?
I use readonly since I init them in contructor.
also:
Note The readonly keyword is different from the const keyword. A const
field can only be initialized at the declaration of the field. A
readonly field can be initialized either at the declaration or in a
constructor. Therefore, readonly fields can have different values
depending on the constructor used. Also, while a const field is a
compile-time constant, the readonly fiel
【在 st 的大作中提到】 : The readonly keyword is a modifier that you can use on fields. When a : field declaration includes a readonly modifier, assignments to the : fields introduced by the declaration can only occur as part of the : declaration or in a constructor in the same class. : You can assign a value to a readonly field only in the following : contexts: : When the variable is initialized in the declaration, for example: : public readonly int y = 5; : For an instance field, in the instance constructors of the class that : contain
|
r****y 发帖数: 26819 | 6 and FYI:
Note The readonly keyword is different from the const keyword. A const field
can only be initialized at the declaration of the field. A readonly field can
be initialized either at the declaration or in a constructor. Therefore,
readonly fields can have different values depending on the constructor used.
Also, while a const field is a compile-time constant, the readonly field can
be used for runtime constants, as in the following example:
public static readonly uint l1 = (uint) DateTim |
st 发帖数: 1685 | 7 yeah, static is not allowed in a const declaration, but it's allowed
in readonly.
【在 r****y 的大作中提到】 : and FYI: : Note The readonly keyword is different from the const keyword. A const field : can only be initialized at the declaration of the field. A readonly field can : be initialized either at the declaration or in a constructor. Therefore, : readonly fields can have different values depending on the constructor used. : Also, while a const field is a compile-time constant, the readonly field can : be used for runtime constants, as in the following example: : public static readonly uint l1 = (uint) DateTim
|
y**b 发帖数: 10166 | 8 谢谢, 我用的c++, 没用过c#, c++也有readonly吗? 难道是因为
大家都用一个.net环境? 觉得不会呀.
我把源码放在ftp上面, static和enum两个版本, 你们有兴趣
可以看一下其中static定义部分, 并用.net编译一下.
没空就不麻烦了. 我只是奇怪.net 2003 c++的编译器怎么
会不能识别static const unsigned int DEFAULT_CAPACITY = 30;
ftp:
128.138.45.113:2121
cross/cross
【在 st 的大作中提到】 : yeah, static is not allowed in a const declaration, but it's allowed : in readonly.
|
st 发帖数: 1685 | 9 MSDN 说得很清楚了,static const不能一起用,static readonly可以。和和。
C++也有这个,我查的vs.net 2003带的msdn,你难道不用msdn么?
【在 y**b 的大作中提到】 : 谢谢, 我用的c++, 没用过c#, c++也有readonly吗? 难道是因为 : 大家都用一个.net环境? 觉得不会呀. : 我把源码放在ftp上面, static和enum两个版本, 你们有兴趣 : 可以看一下其中static定义部分, 并用.net编译一下. : 没空就不麻烦了. 我只是奇怪.net 2003 c++的编译器怎么 : 会不能识别static const unsigned int DEFAULT_CAPACITY = 30; : ftp: : 128.138.45.113:2121 : cross/cross
|
y**b 发帖数: 10166 | 10 我很少用.net, 也查msdn, 可是用的很不熟.
这么说好奇怪呀, .net怎么不兼容标准c++语法呢.
【在 st 的大作中提到】 : MSDN 说得很清楚了,static const不能一起用,static readonly可以。和和。 : C++也有这个,我查的vs.net 2003带的msdn,你难道不用msdn么?
|
|
|
st 发帖数: 1685 | 11 it's not ANSI C++, it's managed C++ bah.
【在 y**b 的大作中提到】 : 我很少用.net, 也查msdn, 可是用的很不熟. : 这么说好奇怪呀, .net怎么不兼容标准c++语法呢.
|
y**b 发帖数: 10166 | 12 that is also what I am guessing.【 在 st (月光下老虎慢慢吃人) 的大作中提到: 】 |
r****y 发帖数: 26819 | 13 你新建project的时候选择Visual C++ Projects, 然后细选为Win32 project,就不会有
这个麻烦了。
如果不是.NET project,就不要选.NET。
【在 y**b 的大作中提到】 : that is also what I am guessing.【 在 st (月光下老虎慢慢吃人) 的大作中提到: 】
|
st 发帖数: 1685 | 14 emh, C++ project下面好几个sub category呢,不过我现在vs.net 2003只用C#. hehe
【在 r****y 的大作中提到】 : 你新建project的时候选择Visual C++ Projects, 然后细选为Win32 project,就不会有 : 这个麻烦了。 : 如果不是.NET project,就不要选.NET。
|
r****y 发帖数: 26819 | 15 我想问问,managed C++应该是compile成MSIL再运行的吧,和C#生成的MSIL比运行速度
应该差不多吧,那和unmanaged C++compile成的传统exe比,执行的速度差多少?假设
同一硬件平台和操作系统。
【在 st 的大作中提到】 : emh, C++ project下面好几个sub category呢,不过我现在vs.net 2003只用C#. hehe
|
st 发帖数: 1685 | 16 应该快不少呢,具体不好说,看过那个C# leader的interview,说速度上面会慢,
具体多少没有说。
【在 r****y 的大作中提到】 : 我想问问,managed C++应该是compile成MSIL再运行的吧,和C#生成的MSIL比运行速度 : 应该差不多吧,那和unmanaged C++compile成的传统exe比,执行的速度差多少?假设 : 同一硬件平台和操作系统。
|
r****y 发帖数: 26819 | 17 你说managed c++的MSIL比c#的MSIL的执行速度快不少?
【在 st 的大作中提到】 : 应该快不少呢,具体不好说,看过那个C# leader的interview,说速度上面会慢, : 具体多少没有说。
|
st 发帖数: 1685 | 18 不是啊,.exe C++比MSIL快吧,毕竟CLR overhead不少。不过哪些编译出来的.dll
应该不慢吧。具体我不太清楚。
【在 r****y 的大作中提到】 : 你说managed c++的MSIL比c#的MSIL的执行速度快不少?
|
y**b 发帖数: 10166 | 19 我就是这么选的, 而且还设置成empty project, 步骤如下:
visual c++ projects
->Win32
->Win32 Console Projet
->empty project
应该和.net没发生关系.
【在 r****y 的大作中提到】 : 你新建project的时候选择Visual C++ Projects, 然后细选为Win32 project,就不会有 : 这个麻烦了。 : 如果不是.NET project,就不要选.NET。
|
st 发帖数: 1685 | 20 well, I just created a C++ win32 console application.
test.cpp is like following:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
static const int test = 0;
return 0;
}
I only added one line:
static const int test = 0;
it compiled just fine...
【在 y**b 的大作中提到】 : 我就是这么选的, 而且还设置成empty project, 步骤如下: : visual c++ projects : ->Win32 : ->Win32 Console Projet : ->empty project : 应该和.net没发生关系.
|
|
|
r****y 发帖数: 26819 | 21 你的代码我看了,首先,你写的是MC,用了namespace。其次,你的这个field
TESTSIZE不属于任何class。
我把它改成polynomial的public static field,再将所有TESTSIZE换成
polynomial::TESTSIZE,再去掉namespace main_savitch_4里对
polynomial::DEFAULT_CAPACITY的重复申明,就编译通过了。
【在 y**b 的大作中提到】 : 我就是这么选的, 而且还设置成empty project, 步骤如下: : visual c++ projects : ->Win32 : ->Win32 Console Projet : ->empty project : 应该和.net没发生关系.
|
r****y 发帖数: 26819 | 22 他的问题不是那么回事。他的代码是mc,却选成了win32的project。
这怎么可以。
【在 st 的大作中提到】 : well, I just created a C++ win32 console application. : test.cpp is like following: : #include "stdafx.h" : int _tmain(int argc, _TCHAR* argv[]) : { : static const int test = 0; : return 0; : } : I only added one line: : static const int test = 0;
|
st 发帖数: 1685 | 23 faint ah faint.
【在 r****y 的大作中提到】 : 你的代码我看了,首先,你写的是MC,用了namespace。其次,你的这个field : TESTSIZE不属于任何class。 : 我把它改成polynomial的public static field,再将所有TESTSIZE换成 : polynomial::TESTSIZE,再去掉namespace main_savitch_4里对 : polynomial::DEFAULT_CAPACITY的重复申明,就编译通过了。
|
st 发帖数: 1685 | 24 我只是给她demonstrate一下vs.net 2003里面win32 C++可以支持static const.
【在 r****y 的大作中提到】 : 他的问题不是那么回事。他的代码是mc,却选成了win32的project。 : 这怎么可以。
|
r****y 发帖数: 26819 | 25 对呀,应该没问题的。我也没想到她是这么弄的,一看代码我没从椅子上跌下来。
不过我也说错了,肯定这个代码不是她写的。
我只是不明白,这个程序要拿mc写干吗。传统的VC6就足够了。执行还快一些。
【在 st 的大作中提到】 : 我只是给她demonstrate一下vs.net 2003里面win32 C++可以支持static const.
|
st 发帖数: 1685 | 26 我机器上面装了VS6, vs.net 2002, 2003,不过msdn只有2003的了。上次3rd party
API是2003的所以装了2003,这年头,装上为了好玩吧。不过怎么大家基础都没有
就开始做程序呢,怎么也需要有一点吧。和和。
【在 r****y 的大作中提到】 : 对呀,应该没问题的。我也没想到她是这么弄的,一看代码我没从椅子上跌下来。 : 不过我也说错了,肯定这个代码不是她写的。 : 我只是不明白,这个程序要拿mc写干吗。传统的VC6就足够了。执行还快一些。
|
y**b 发帖数: 10166 | 27 抱歉, 我还稀里糊涂的, 代码是老师给的, 我只改动函数.
mc是什么? 土啊.
【在 r****y 的大作中提到】 : 对呀,应该没问题的。我也没想到她是这么弄的,一看代码我没从椅子上跌下来。 : 不过我也说错了,肯定这个代码不是她写的。 : 我只是不明白,这个程序要拿mc写干吗。传统的VC6就足够了。执行还快一些。
|
y**b 发帖数: 10166 | 28 .net我刚装上, 一点都不懂啊, 凭直觉搞的. 见笑见笑.
【在 st 的大作中提到】 : 我机器上面装了VS6, vs.net 2002, 2003,不过msdn只有2003的了。上次3rd party : API是2003的所以装了2003,这年头,装上为了好玩吧。不过怎么大家基础都没有 : 就开始做程序呢,怎么也需要有一点吧。和和。
|
r****y 发帖数: 26819 | 29 其实她也不是没有一点基础,关键是.NET和以前的VC++那套东西差别太大了。如果对这个
差别不了解就千万别混淆在一起了。
记得我第一次打开VS.NET 2002看一个console 的Hello World,那个惊讶。
【在 st 的大作中提到】 : 我机器上面装了VS6, vs.net 2002, 2003,不过msdn只有2003的了。上次3rd party : API是2003的所以装了2003,这年头,装上为了好玩吧。不过怎么大家基础都没有 : 就开始做程序呢,怎么也需要有一点吧。和和。
|
r****y 发帖数: 26819 | 30 呵呵,就是我们一直在说的managed c++。
【在 y**b 的大作中提到】 : 抱歉, 我还稀里糊涂的, 代码是老师给的, 我只改动函数. : mc是什么? 土啊.
|
|
|
st 发帖数: 1685 | 31 我倒是不觉的,大概因为先看的C#的东西。所谓MC的东西么,感觉就是个变种过去,
最早一直都是win32 C++,后来写了不少java,所以看到C#感觉是个mixed... hehe
【在 r****y 的大作中提到】 : 其实她也不是没有一点基础,关键是.NET和以前的VC++那套东西差别太大了。如果对这个 : 差别不了解就千万别混淆在一起了。 : 记得我第一次打开VS.NET 2002看一个console 的Hello World,那个惊讶。
|
r****y 发帖数: 26819 | 32 那是。我一直没学java。所以才觉得差别大。
【在 st 的大作中提到】 : 我倒是不觉的,大概因为先看的C#的东西。所谓MC的东西么,感觉就是个变种过去, : 最早一直都是win32 C++,后来写了不少java,所以看到C#感觉是个mixed... hehe
|
st 发帖数: 1685 | 33 其实我写java也就当C++写了,当时也不觉的差别大,写的时候学了点东西,逐渐
就适应了。不过说回来了,很多advance feature都不是一定要用的。yanb完全
可以不用modifier写她的程序的。一堆public对academic的程序来说一点关系都没有。
【在 r****y 的大作中提到】 : 那是。我一直没学java。所以才觉得差别大。
|
r****y 发帖数: 26819 | 34 她是没办法,要用colorado大学的家伙写的代码。那小子用了MC。
【在 st 的大作中提到】 : 其实我写java也就当C++写了,当时也不觉的差别大,写的时候学了点东西,逐渐 : 就适应了。不过说回来了,很多advance feature都不是一定要用的。yanb完全 : 可以不用modifier写她的程序的。一堆public对academic的程序来说一点关系都没有。
|
st 发帖数: 1685 | 35 那个static const怎么冒出来的?
【在 r****y 的大作中提到】 : 她是没办法,要用colorado大学的家伙写的代码。那小子用了MC。
|
r****y 发帖数: 26819 | 36 我看了一下,那个家伙自己的代码里就有很多问题。和yanb都无关:她是无辜的。
【在 st 的大作中提到】 : 那个static const怎么冒出来的?
|
st 发帖数: 1685 | 37 可怜的yanb妹妹,收到的code不能compile最郁闷了。
【在 r****y 的大作中提到】 : 我看了一下,那个家伙自己的代码里就有很多问题。和yanb都无关:她是无辜的。
|
r****y 发帖数: 26819 | 38 那你还不快出手救人。
【在 st 的大作中提到】 : 可怜的yanb妹妹,收到的code不能compile最郁闷了。
|
r****y 发帖数: 26819 | 39 我觉得很奇怪呀,那小子的文件后缀cxx不是VS生成的呀。
看代码,他学了个MC的样子,却不习惯OO的风格,还有就是一些代码居然注明写于
Oct 29, 1997
【在 st 的大作中提到】 : 可怜的yanb妹妹,收到的code不能compile最郁闷了。
|
st 发帖数: 1685 | 40 份特,it's no fun at all ah.
【在 r****y 的大作中提到】 : 那你还不快出手救人。
|
|
|
st 发帖数: 1685 | 41
从别的code改过来的把。 我就没有去那个ftp,你帮她改吧。
【在 r****y 的大作中提到】 : 我觉得很奇怪呀,那小子的文件后缀cxx不是VS生成的呀。 : 看代码,他学了个MC的样子,却不习惯OO的风格,还有就是一些代码居然注明写于 : Oct 29, 1997
|
r****y 发帖数: 26819 | 42 我的改法已经post了。
确实可以肯定是拿着从前的c代码改的。除了一些cout,程序结构连c++都不是。
【在 st 的大作中提到】 : : 从别的code改过来的把。 我就没有去那个ftp,你帮她改吧。
|
y**b 发帖数: 10166 | 43 先感谢两位高手的耐心帮助.
这两天抽空看了看对.net的介绍, 概念和具体应用上同以前vs6相比
非常大啊. 从传统c++到mc, 风格就是两回事. clr那东西, 背后做
了太多事情, 搞的c++都不像c++了. 用mc还不如干脆学c#吧, 我瞎
想的.
再问一个常识问题: 对我提到的代码, 应该选哪种项目? 有没有办
法选择某种类型的项目而不需要改变原来的代码? 谢了.
【在 r****y 的大作中提到】 : 他的问题不是那么回事。他的代码是mc,却选成了win32的project。 : 这怎么可以。
|
st 发帖数: 1685 | 44
I have similar feeling.. hehe
ask rodney bah, I didnot read your code. sorry
【在 y**b 的大作中提到】 : 先感谢两位高手的耐心帮助. : 这两天抽空看了看对.net的介绍, 概念和具体应用上同以前vs6相比 : 非常大啊. 从传统c++到mc, 风格就是两回事. clr那东西, 背后做 : 了太多事情, 搞的c++都不像c++了. 用mc还不如干脆学c#吧, 我瞎 : 想的. : 再问一个常识问题: 对我提到的代码, 应该选哪种项目? 有没有办 : 法选择某种类型的项目而不需要改变原来的代码? 谢了.
|
r****y 发帖数: 26819 | 45 mc的好处,是可以在里头混加unmanaged VC code. 现在FCL并没有完全取代win32 API,
所以用vc++.net还是有用的。比较Flexible。有本The Lost Win32API讲这个。
【在 y**b 的大作中提到】 : 先感谢两位高手的耐心帮助. : 这两天抽空看了看对.net的介绍, 概念和具体应用上同以前vs6相比 : 非常大啊. 从传统c++到mc, 风格就是两回事. clr那东西, 背后做 : 了太多事情, 搞的c++都不像c++了. 用mc还不如干脆学c#吧, 我瞎 : 想的. : 再问一个常识问题: 对我提到的代码, 应该选哪种项目? 有没有办 : 法选择某种类型的项目而不需要改变原来的代码? 谢了.
|
r****y 发帖数: 26819 | 46 第二个问题,很奇怪,我选的win32 Console Project,一样可以用namespace这些东西。
你看我的原贴讲怎么改的就可以编译通过了。很简单。改动不难呀。只有两个文件。
【在 y**b 的大作中提到】 : 先感谢两位高手的耐心帮助. : 这两天抽空看了看对.net的介绍, 概念和具体应用上同以前vs6相比 : 非常大啊. 从传统c++到mc, 风格就是两回事. clr那东西, 背后做 : 了太多事情, 搞的c++都不像c++了. 用mc还不如干脆学c#吧, 我瞎 : 想的. : 再问一个常识问题: 对我提到的代码, 应该选哪种项目? 有没有办 : 法选择某种类型的项目而不需要改变原来的代码? 谢了.
|
y**b 发帖数: 10166 | 47 按改动当然没问题.
【在 r****y 的大作中提到】 : 第二个问题,很奇怪,我选的win32 Console Project,一样可以用namespace这些东西。 : 你看我的原贴讲怎么改的就可以编译通过了。很简单。改动不难呀。只有两个文件。
|
r****y 发帖数: 26819 | 48 我不知道那个原作者是拿什么编译的,cxx不是vs的default文件格式。你可以问问他。
顺便把这个问题也问了。
【在 y**b 的大作中提到】 : 按改动当然没问题.
|
y**b 发帖数: 10166 | 49 en. 他原来都是在linux下面用g++编译的.
谢谢.
【在 r****y 的大作中提到】 : 我不知道那个原作者是拿什么编译的,cxx不是vs的default文件格式。你可以问问他。 : 顺便把这个问题也问了。
|
r****y 发帖数: 26819 | 50 也不错呀。那你也照做吧。
美国的学生是特喜欢免费的开发环境。他们copyright观念太正规了。我见着的
一个美国under的念CS的孩子,凡是要钱的开发环境都不会用。
【在 y**b 的大作中提到】 : en. 他原来都是在linux下面用g++编译的. : 谢谢.
|
|
|
st 发帖数: 1685 | 51 I have my legal vs.net, $11.49 or something...
but I dont have 2003 at home yet... I think it's using same sn as vs.net2002,
so I dont have to buy it, just copy and upgrade, still legal version?
【在 r****y 的大作中提到】 : 也不错呀。那你也照做吧。 : 美国的学生是特喜欢免费的开发环境。他们copyright观念太正规了。我见着的 : 一个美国under的念CS的孩子,凡是要钱的开发环境都不会用。
|
r****y 发帖数: 26819 | 52 In my local university, for department price, a vs.net pro 2003 is < $40.
I remember from 2002, the vs.net has the function of tree-view blocks of
codes. That's a must to me.
【在 st 的大作中提到】 : I have my legal vs.net, $11.49 or something... : but I dont have 2003 at home yet... I think it's using same sn as vs.net2002, : so I dont have to buy it, just copy and upgrade, still legal version?
|
st 发帖数: 1685 | 53 I like the tree-view, but I prefer jbuilder type of tree view, which is
provided like object browse, if the object browser is dockable and more
customizable, it would be perfect.
【在 r****y 的大作中提到】 : In my local university, for department price, a vs.net pro 2003 is < $40. : I remember from 2002, the vs.net has the function of tree-view blocks of : codes. That's a must to me.
|
st 发帖数: 1685 | 54 actually w2k source code contains many cxx files.
【在 r****y 的大作中提到】 : 我不知道那个原作者是拿什么编译的,cxx不是vs的default文件格式。你可以问问他。 : 顺便把这个问题也问了。
|
r****y 发帖数: 26819 | 55 Right. Just found that. How. Again that topic: origined from BSD?
【在 st 的大作中提到】 : actually w2k source code contains many cxx files.
|
st 发帖数: 1685 | 56 well, i think some windows tutorial mentions cxx in their files as well,
not sure about it, but in the blurred memory, something like that...
dont know exactly why...
【在 r****y 的大作中提到】 : Right. Just found that. How. Again that topic: origined from BSD?
|
y**b 发帖数: 10166 | 57 unix/linux下面我早就通过, 多余的时间想试试.net,
所以才问出这些问题.
非常奇怪的一个现象是: 有一个成员函数操作一个成员
变量(是个动态数组), 在linux下面运行测试程序没发
现错误. 在.net里面立即发现越界(当然是通过测试程序
发现的, 不是运行时提示数组越界). 两种平台下面用的
是完全相同的代码.
你们估计是什么原因?
【在 r****y 的大作中提到】 : 也不错呀。那你也照做吧。 : 美国的学生是特喜欢免费的开发环境。他们copyright观念太正规了。我见着的 : 一个美国under的念CS的孩子,凡是要钱的开发环境都不会用。
|
r****y 发帖数: 26819 | 58 啊,这还要猜?.NET的安全性能设计就是这样的呀。更加严格的越界检查。Linux下是传
统C++当然没这么严格。
【在 y**b 的大作中提到】 : unix/linux下面我早就通过, 多余的时间想试试.net, : 所以才问出这些问题. : 非常奇怪的一个现象是: 有一个成员函数操作一个成员 : 变量(是个动态数组), 在linux下面运行测试程序没发 : 现错误. 在.net里面立即发现越界(当然是通过测试程序 : 发现的, 不是运行时提示数组越界). 两种平台下面用的 : 是完全相同的代码. : 你们估计是什么原因?
|
y**b 发帖数: 10166 | 59 .net也不是提示越界, 而且计算结果无穷大.
linux下竟然不是这个结果. 我有空再琢磨.
【在 r****y 的大作中提到】 : 啊,这还要猜?.NET的安全性能设计就是这样的呀。更加严格的越界检查。Linux下是传 : 统C++当然没这么严格。
|