1樓:
構造相當於初始化,比如有一個點在(0,0)。但是這個點它要動啊,待在**,沒意思啊。所以就setpoint(1,1),讓他到(1,1)這個地方去了。
建構函式的話,你可以再定義一個point p(1,1)。但是這個p已經是另外一個點了,不是原來那個點了。你出生的時候10斤,你會長大嘛,總不會你20斤的時候,就把你拋棄了,再找一個20斤的孩子啊,那太殘忍了。
如果沒有getx(),gety().那怎麼獲得x,y呢?只能將x,y設為public了。
可是public的話,那可以。
y=3.誰都能讓這個點動(任意一個地方用到p的地方都可能改變)。那最後p不小心改變了,去**找原因呢?
不好找啊。所以,不設為public。那麼,就不能通過p.
x,來設定x,y的值了。只能通過setpoint(x,y)來設定。
這樣,就比較好找問題所在了。因為這是一個簡單的例子,你能看出來,所以體現不了它的優點,反而覺得setpoint比較多餘。這也是一種設計思想,資料和介面分離。
你提供給別人介面就好了,不要告訴你的詳細設計。別人用的話,就point p,,2)。
很簡單,你可以設計一百個類,都是這樣的介面。人家看一下就知道怎麼用了。如果你沒有setpoint。
那人家得記住你一百個類裡面的200個成員變數的名字,以及他們的含義,要是你,你願意嗎?
2樓:匿名使用者
setpoint,可以呼叫對成員變數 x,y賦值,構造只會來一次,setpoint可以呼叫n次。
3樓:令狐安天
先你的問題吧!
1.現在規範**,都是int main()不再是以前的void main();不管怎樣main()也是一個函式,既然不是void型別就要有返回值;如果執行到return語句時,該函式結束。所以你主函式中return0;後面一句輸出是無效的。
至於它是返回給誰,我不清楚。
2.你的說法是可以的。
3.在c或者c++ 中都是由主函式開始執行的。由主函式呼叫swap(int x,int y)然後返回主函式;而go函式是不會執行的。你可以上機執行一下。
下面說說我想對你說的,你的程式中有許多的錯誤之處,首先是漏掉了很多的分號,每個語句結束之後要以分號結尾。不然編譯器會報錯的,你編譯沒法通過。還有你的return打錯了不是renturn。
還有主函式在呼叫函式swap之前應該先對函式swap進行宣告,宣告可以這樣寫void swap(int x,inty);別忘了分號。如果你不想宣告的話也可以,但是要將swap函式定義寫在main函式之前。main函式結束的時候,也就是這個執行結束了,你後面的go函式想要執行,要在主函式結束之前進行呼叫,你在swap函式中呼叫也是可以的。
不要認為寫了就會得到執行。
附上對你程式的修改:
#include
using namespace std;
int main()
void swap(int x,int y)
void go()
//如果想要這個函式執行,要在前面宣告然後呼叫!
如果還有什麼問題,再和我聯絡吧! 是我的郵箱地址!
c 程序c 程序c 程序,c 程式c 程式c 程式
fun的 相當於 void func2 long n main函式裡面應該不需要太多的解釋,重點是fun這個函式的遞迴呼叫。遞迴函式中,必須有一個結束條件,fun中的這個條件就是 n 10 0 當n 10 0什麼都不做,結束了。但是當n 10!0 時,就會遞迴呼叫 fun n 10 直到n 10 0...
c語言疑問
錯誤太多了.以我對程式的理解,你是想輸入兩個值,然後交換順序輸出吧,如果是,請往下看。exchanger是一個函式,如果是int型別,就要有一個返回值,需要在函式末尾加入return 返回值,且為int型別 但是顯然這裡不需要,改為void即可。函式宣告 exchanger完全可以在main函式之前...
c語言程式問題,C語言程式問題?
1.在你打算學習c語言之前,你要下一個狠狠地決心.因為許多電腦愛好者在學習c語言的過程中,都會遇到困難,從而沒有堅持到最後.只有你下定狠狠地決心,才能學會c語言,才能學好c語言.2.要想學習好c語言,就要學會細心,耐心.c語言程式的編寫需要非常細心,因為一個標點符號的錯誤,可能導致程式的無法執行.3...