zoukankan      html  css  js  c++  java
  • [吐槽]我为什么讨厌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/

  • 相关阅读:
    javascript题目,如何在重写alert后还能正常弹出alert
    mass Framework support模块 v2
    javascript suggest效果
    HTML <div> 标签的 align 属性
    SQL GROUP BY 语句
    SQL UPDATE 语句
    HTML <font> 标签
    JavaScript eval() 函数
    HTML DOM Checkbox 对象
    CSS cursor 属性
  • 原文地址:https://www.cnblogs.com/plwang1990/p/4142210.html
Copyright © 2011-2022 走看看