• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Beginning to 編程

            VC++ 方面編程文章

             

            不能將“this”指針從“const Vector3D”轉換為“Vector3D &" 錯誤

            我在VS2005中編譯Vector3D類出現
            error C2662: “Vector3D::dotP”: 不能將“this”指針從“const Vector3D”轉換為“Vector3D &”

            怎么樣改正呢,這個類也是看到別人這樣寫的,編譯也沒有錯誤。

            #pragma once

            #define M_PI 3.141
            #include <math.h>

            class Vector3D{
            ?Vector3D(){x=y=z=0.0;}
            ?Vector3D(double vx, double vy,double vz=0.0){
            ??x = vx;
            ??y = vy;
            ??z = vz;
            ?}
            ?
            ?double magnitude() const{
            ??return sqrt(x*x+y*y+z*z);
            ?}

            ?double dotP(const Vector3D& v1,const Vector3D& v2){
            ??return (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z);
            ?}

            ?// get the vector angle
            ?double angle() const{
            ??double ret = 0.0;
            ??double m = magnitude();

            ??if (m>1.0e-6) {

            //?問題出在這里!!!!
            // ==============================
            ???double dp = dotP(*this,Vector3D(1.0,0.0));
            //==============================

            ???if (dp/m>=1.0) {
            ????ret = 0.0;
            ???}
            ???else if (dp/m<-1.0) {
            ????ret = M_PI;
            ???}
            ???else {
            ????ret = acos( dp / m);
            ???}
            ???if (y<0.0) {
            ????ret = 2*M_PI - ret;
            ???}
            ??}
            ??return ret;
            ?}


            protected:
            ?double x;
            ?double y;
            ?double z;

            };#pragma once

            #define M_PI 3.141
            #include <math.h>

            class Vector3D{
            ?Vector3D(){x=y=z=0.0;}
            ?Vector3D(double vx, double vy,double vz=0.0){
            ??x = vx;
            ??y = vy;
            ??z = vz;
            ?}
            ?
            ?double magnitude() const{
            ??return sqrt(x*x+y*y+z*z);
            ?}

            ?double dotP(const Vector3D& v1,const Vector3D& v2){
            ??return (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z);
            ?}

            ?// get the vector angle
            ?double angle() const{
            ??double ret = 0.0;
            ??double m = magnitude();

            ??if (m>1.0e-6) {
            ???double dp = dotP(*this,Vector3D(1.0,0.0));

            ???if (dp/m>=1.0) {
            ????ret = 0.0;
            ???}
            ???else if (dp/m<-1.0) {
            ????ret = M_PI;
            ???}
            ???else {
            ????ret = acos( dp / m);
            ???}
            ???if (y<0.0) {
            ????ret = 2*M_PI - ret;
            ???}
            ??}
            ??return ret;
            ?}


            protected:
            ?double x;
            ?double y;
            ?double z;

            };

            posted on 2006-05-10 14:42 Beginning to 編程 閱讀(6451) 評論(2)  編輯 收藏 引用 所屬分類: 關鍵代碼

            評論

            # re: 不能將“this”指針從“const Vector3D”轉換為“Vector3D &" 錯誤 2006-05-10 21:50 史傳紅

            原因不是*this不能轉換成const vector3D&,而是常成員函數(double angle() const)不能調用 非 常成員函數(double dotP(const Vector3D& v1,const Vector3D& v2)),如果把dotp改成如下定義:double dotP(const Vector3D& v1,const Vector3D& v2) const.
            問題就解決了.  回復  更多評論   

            # re: 不能將“this”指針從“const Vector3D”轉換為“Vector3D &" 錯誤 2006-05-11 11:59 nico

            double dotP(const Vector3D& v1,const Vector3D& v2) const
            {
            return (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z);
            }
              回復  更多評論   

            導航

            統計

            常用鏈接

            留言簿(4)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            BlogDev

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            波多野结衣久久| 婷婷久久五月天| 精品久久久久久国产91| 国产成人无码久久久精品一| 久久夜色精品国产欧美乱| 久久精品国产99国产精品澳门| 久久国产乱子伦精品免费强| 久久天天躁狠狠躁夜夜不卡| 奇米影视7777久久精品人人爽| 久久久久久人妻无码| 国产成人久久久精品二区三区 | 精品久久人人爽天天玩人人妻 | 久久99国产亚洲高清观看首页| 国产毛片久久久久久国产毛片| 久久人人爽人人爽人人av东京热 | 最新久久免费视频| 999久久久免费精品国产| 久久无码国产| 成人国内精品久久久久影院VR| 久久久久亚洲av综合波多野结衣 | 欧美午夜A∨大片久久| 久久久久久亚洲AV无码专区| 久久国产成人亚洲精品影院| 激情伊人五月天久久综合| 精品久久久久成人码免费动漫| 一本大道久久a久久精品综合| 久久亚洲AV无码精品色午夜| 久久婷婷五月综合色99啪ak| 精品免费久久久久国产一区 | 亚洲人成伊人成综合网久久久| 久久九色综合九色99伊人| 久久夜色tv网站| 久久精品国产亚洲AV香蕉| 热re99久久6国产精品免费| 亚洲综合久久久| 色天使久久综合网天天| 怡红院日本一道日本久久| 欧美精品一区二区精品久久| 久久久久久a亚洲欧洲aⅴ| 国产∨亚洲V天堂无码久久久 | 日本WV一本一道久久香蕉|