由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - [新手]一直都把C++当Java写,有啥严重不妥?
相关主题
c++指针的问题问个C++中重复删除指针的问题
大家要学习C++11啊, 我觉得C++11很多FEATURE,绝对不输JAVA.问一个关于C++指针的问题
不如各位高手挑个专题讲讲C++11吧请问delete的问题
《C# 5.0 核心技术》第5版[PDF]请教一个const pointer的问题
其实微软是个做语言的公司一个C的void指针的问题
一个C#使用C++.NET类库的问题auto_ptr, algorithm 混用问题,大侠们救我。头疼死了!
difference between: char** p and char*p[] ??这段code有啥问题?
C++ pointer problemc++ interview: iterator 和 pointer区别?
相关话题的讨论汇总
话题: c++话题: java话题: 指针话题: pointer话题: template
进入Programming版参与讨论
1 (共1页)
C******b
发帖数: 360
1
先学了java,再学C++,一直都把C++当成java写:
1. Pointer尽量用smart pointer
2. 新建object尽量都用指针,基本都是pass by pointer
3. 函数基本都是virtual
4. template,STL都基本用java的generics style,template parameter都是super
class的指针
c++那些funky的operator,friend class啥的基本不用。
这些习惯好不好?
b**********h
发帖数: 419
2
你实验好了来告诉我们
C******b
发帖数: 360
3
我好像一直就这么写的,写了一两年,暂时没有严重问题,只是来特地请教各位大牛门


【在 b**********h 的大作中提到】
: 你实验好了来告诉我们
d****i
发帖数: 4809
4
没有问题,实际上把C++当C来写,或者把C++当Java来写都是没问题的,只要注意到一
些细微的差别尤其是performance上面的就可以了,比如你都用virtual函数就要看是否
一定需要在子类中override。提倡简单就是美的原则是对的。

【在 C******b 的大作中提到】
: 先学了java,再学C++,一直都把C++当成java写:
: 1. Pointer尽量用smart pointer
: 2. 新建object尽量都用指针,基本都是pass by pointer
: 3. 函数基本都是virtual
: 4. template,STL都基本用java的generics style,template parameter都是super
: class的指针
: c++那些funky的operator,friend class啥的基本不用。
: 这些习惯好不好?

t**r
发帖数: 3428
5
沒有問題。是一個很好的practice.
d*******r
发帖数: 3299
6
主要问题是: 想象比较理想...
实际干活 C++ 麻烦多多, 要求的经验要过硬

【在 C******b 的大作中提到】
: 先学了java,再学C++,一直都把C++当成java写:
: 1. Pointer尽量用smart pointer
: 2. 新建object尽量都用指针,基本都是pass by pointer
: 3. 函数基本都是virtual
: 4. template,STL都基本用java的generics style,template parameter都是super
: class的指针
: c++那些funky的operator,friend class啥的基本不用。
: 这些习惯好不好?

A*******e
发帖数: 2419
7

+1
-1
1/2不矛盾吗?还是说你满屏都是unique_ptr?
-1
没看明白。
哪些funky?

【在 C******b 的大作中提到】
: 先学了java,再学C++,一直都把C++当成java写:
: 1. Pointer尽量用smart pointer
: 2. 新建object尽量都用指针,基本都是pass by pointer
: 3. 函数基本都是virtual
: 4. template,STL都基本用java的generics style,template parameter都是super
: class的指针
: c++那些funky的operator,friend class啥的基本不用。
: 这些习惯好不好?

B********r
发帖数: 397
8
挺好,design 远比implementation重要
s******u
发帖数: 501
9

没问题
这个是很不好的习惯。为什么要用指针?C++非常重要的一点是尽量少用指针,能放在
stack的为什么要放在heap?能直接access的变量为什么非要用指针来做一个indirect
access?能用scope来实现变量的lifetime management为什么非要用指针的new/delete
来手动manage?
对于用smart pointer来替代bare pointer只是解决了上面说的第三个问题,但是如果
你在设计的时候清楚每一个变量的ownership和liftime,可以说99%的情况下你不需要
用指针,当然也不需要用smart pointer了
继承是仅次于freind的最强关联了,实际的设计中其实很少要用到继承这么强的关联,
考虑多使用has-a的关系替代is-a的关系。如果不需要继承,放着virtual是没有意义的
不懂
operator有好有坏。friend上面说了,是最强的关联,不常用是正常的

【在 C******b 的大作中提到】
: 先学了java,再学C++,一直都把C++当成java写:
: 1. Pointer尽量用smart pointer
: 2. 新建object尽量都用指针,基本都是pass by pointer
: 3. 函数基本都是virtual
: 4. template,STL都基本用java的generics style,template parameter都是super
: class的指针
: c++那些funky的operator,friend class啥的基本不用。
: 这些习惯好不好?

w***g
发帖数: 5958
10
写得很明白,不错。

indirect
delete

【在 s******u 的大作中提到】
:
: 没问题
: 这个是很不好的习惯。为什么要用指针?C++非常重要的一点是尽量少用指针,能放在
: stack的为什么要放在heap?能直接access的变量为什么非要用指针来做一个indirect
: access?能用scope来实现变量的lifetime management为什么非要用指针的new/delete
: 来手动manage?
: 对于用smart pointer来替代bare pointer只是解决了上面说的第三个问题,但是如果
: 你在设计的时候清楚每一个变量的ownership和liftime,可以说99%的情况下你不需要
: 用指针,当然也不需要用smart pointer了
: 继承是仅次于freind的最强关联了,实际的设计中其实很少要用到继承这么强的关联,

g*********e
发帖数: 14401
11
效率不行 跟扎瓦一样慢

【在 C******b 的大作中提到】
: 先学了java,再学C++,一直都把C++当成java写:
: 1. Pointer尽量用smart pointer
: 2. 新建object尽量都用指针,基本都是pass by pointer
: 3. 函数基本都是virtual
: 4. template,STL都基本用java的generics style,template parameter都是super
: class的指针
: c++那些funky的operator,friend class啥的基本不用。
: 这些习惯好不好?

N******K
发帖数: 10202
12
template parameter都是super class的指针
ParentClass a;
ChildClass<&a> b;
这个意思?

【在 C******b 的大作中提到】
: 先学了java,再学C++,一直都把C++当成java写:
: 1. Pointer尽量用smart pointer
: 2. 新建object尽量都用指针,基本都是pass by pointer
: 3. 函数基本都是virtual
: 4. template,STL都基本用java的generics style,template parameter都是super
: class的指针
: c++那些funky的operator,friend class啥的基本不用。
: 这些习惯好不好?

1 (共1页)
进入Programming版参与讨论
相关主题
c++ interview: iterator 和 pointer区别?其实微软是个做语言的公司
C++ Q87: What is wrong with this swap function? (转载)一个C#使用C++.NET类库的问题
关于不同类型的smart pointerdifference between: char** p and char*p[] ??
C++是给神仙用的语言C++ pointer problem
c++指针的问题问个C++中重复删除指针的问题
大家要学习C++11啊, 我觉得C++11很多FEATURE,绝对不输JAVA.问一个关于C++指针的问题
不如各位高手挑个专题讲讲C++11吧请问delete的问题
《C# 5.0 核心技术》第5版[PDF]请教一个const pointer的问题
相关话题的讨论汇总
话题: c++话题: java话题: 指针话题: pointer话题: template