我是靠谱客的博主 魁梧小土豆,最近开发中收集的这篇文章主要介绍[吐槽]我为什么讨厌C++,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近在改currennt的代码,我擦擦擦,实在是忍不了了

C++最恶心的地方在于指针引用与面向对象混用!!TMD各种不匹配

举例:

template <typename TDevice>
void TrainableLayer<TDevice>::vectorXvector(real_vector* destmatrix, real_vector* srcvect1, real_vector* srcvect2){
	int vect1size=srcvect1->size();
	int vect2size=srcvect2->size();
	for(int row=0;row<vect1size;++row){
		for(int col=0;col<vect2size;++col){
			//real_t value=srcvect1[row]*srcvect2[col];?
		}
	}
}

代码内容不要在意,就说这个real_vector,是个对象,需要用指针传递

但是这个对象是thrust库实现,想要访问real_vector中的元素的话,只有重载的[]可以用,也就是real_vector[i]这样……

 

我擦,那么这里我该怎么用啊!!假设real_vector的指针是p:

*p->[]在语法层面就是不允许的。*p->get(i)是没有实现的。p[i]访问的内容已经不是我想要的向量中第i个元素了……

这就是给予屁民太大灵活性的后果,最后就是这样互相扯皮!

 

如果不允许重载,real_vector你老老实实给我实现一个get函数,我这里就能用了啊!

 

---------------

好吧……我out了,查了一下发现需要先dereference之后就可以用重载了

(*p)[i]

 

但这也反映了c++语法过于灵活~真心觉得学习这种规则用法是浪费时间………

 

reference:

http://www.cplusplus.com/forum/beginner/28033/

 

最后

以上就是魁梧小土豆为你收集整理的[吐槽]我为什么讨厌C++的全部内容,希望文章能够帮你解决[吐槽]我为什么讨厌C++所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部