2017-12-07 9 views
-3

私はコースOOPを取った。私たちは3つのグループでゲームを作ります。私はメニュー部分に取り組みました。残念ながら、私は継承と他のOOPの概念を使用しませんでした。私はクラスを使いました。マークを控除せずに評価者に私が与えることができる理由は何ですか?私の喜びは明日です。 (13時間後) ありがとうございます。私はSDLを使ってOOPプロジェクトを与えられました。私は継承を使っていません。どのような理由で私の評価者に与えることができます

+1

適切なOOP(メニューやボタンのような要件をコード内で直接モデリングすることを意味する)を教えていれば、コードが完全にOOPであることを示すことができます。不適切なOOP(継承階層を可能な限り大きくすることを意味する)を教えられたならば、あなたはうんざりしており、おそらくいくつかの継承階層を追加するべきです。いずれにせよ、これは主に意見に基づいているので、これはstackoverflowのための良い質問ではありませんし、私は専門家のための最高の答えを想像することはできません。そしておそらくそれはプログラミングとは無関係です。 – nwp

答えて

0

あなたのデザインについて何も知らなくても(つまり、クラス同士がどのように協調しているか)、あなたが言うことを推測することは少し難しく、そこには多くの「OOP概念」があります。

他のクラスのすべての関数を静的であると宣言していないと仮定して、私はあなたに提案することができる唯一のことは、構成がしばしば(常にではないが)良くなるため継承を使用しなかったと言うことです。

class Player 
{ 
    private: 
    Weapon gun; 
    public: 
    Player(Weapon& pistol); 
    void shoot(){gun.bang();} 
}; 

ガンが組成物である:あなたのクラスの一つのメンバーがクラスそのものである場合には、組成物を持っているプレイヤーは、(撮影に銃を使用していますが)、それはここで組成物を完全に合法的な使用です。これは、組成物を使用したくない場合です:

あなたはこのような何かが騎士とMedievalFolk、あなたが必要とする間に差がないので、断っされるように調製されなかった場合
class MedievalFolk 
{ 
    private: 
    Knight arthur; 
    public: 
    Player(Knight& pistol); 
    void duel(){arthur.duel();} 
}; 

この議論が成立しないので、ここでは「構成が良い」より良い理由があります。また、静的なものをすべて宣言した場合は、私があなたにアドバイスできるのは、そうしないようにコードを修正することだけです。あなたは昔ながらの手続き型コードを賞賛しています(クラスを使用するかどうかに関わらず)。すべてが他の関数を呼び出す関数であり、OOPのコースを教えていれば、私はこの教訓に失敗します。

IdonあなたがOOPのために勉強していることは分かっていますが、ソフトウェア開発に取り掛かったければ、試験を延期し、あなたの授業を適切に行うことを強くお勧めします。数時間後に修正することはできませんプロフェッショナルは、数日のうちに悪いコードを再検査できます。また、70年代の古物で作業する予定がない限り、OOPに習熟していない開発者を雇うことを望む雇用者は一人もいません(それでもまだ十分ではありません)。

+1

"当時OOPに堪能ではない開発者を雇うことを望む雇用者は一人もいません" - > um、no。オブジェクト指向プログラミング(機能プログラミングは大きなものです)以外にも有効なパラダイムがたくさんあります。 – crashmstr

+0

もちろん、基本がわからない場合は、もっと複雑なものを手に入れることはできません。 – Assimazza

+1

オブジェクト指向のコードで作業することが望ましい場合はあります。しかし、すべてのソフトウェア開発がそれを必要とするわけではないので、ブランケット声明の私の批判です。 – crashmstr

関連する問題