Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Một số câu hỏi hay về OOP

  1. #1
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Mặc định Một số câu hỏi hay về OOP

    01. Write a command which properly allocates memory.
    02. What operator is used to access a struct through a pointer?
    03. Which functions initializes the variables contained in a class?
    04. What is the correct syntax to define a derived class?
    05. Are the following declarations the same?
    C++ Code:
    1. const char *ch;
    2. char const *ch;

    06. Why does the following statement give message "uninitialized const ch"?
    C++ Code:
    1. char * const ch;

    07. Friend function adds flexibility to the language, but they are controversial because:
    it goes against the rule of data encapsulation.
    it can access a class's private data
    08. Destructor function has the same name as a class which is preceded by the tilde (~) character. It cannot accept arguments and therefore cannot be overloaded. When is a destructor evoked?
    09. Write the prototype of output (insertion) and input (extraction) operators in the class "Test".
    10. Does operator overloading allow us to create new operator?
    11. Do the istream and ostream classes extend (are derived from) class iostream?
    12. Does C++ support garbage collection?
    13. Among the following keywords, which one violates data encapsulation? public, virtual, friend, protected.
    14. In function declaration, default arguments must be the last arguments.
    15. What is the correct way to name a class?
    16. Why does the following code not run?
    C++ Code:
    1. class A
    2. {
    3. public: A(int x) {}
    4. };
    5. int main()
    6. {
    7.     A  a[50];  return(0);
    8. }

    17. What is the difference between 2 statements bellow:
    C++ Code:
    1. MyClass *p = new  MyClass[100];
    2. MyClass *p = new (nothrow) MyClass[100];

    18. What is the functional difference between:
    C++ Code:
    1. MyClass *p = new  MyClass[100];
    2. delete p;   // (1)
    and
    C++ Code:
    1. MyClass *p = new  MyClass[100];
    2. delete [] p;    // (2)

    19. Are the flowings purposes of class type development?
    Data encapsulation
    Providing a convenient way of modeling real-world objects
    Simplifying code reuse
    20. Which are protection levels provided by classes in C++?
    21. What is the output of the following program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class Foo
    4. {
    5. public:
    6.   Foo() {cout<<"default constructor"<<endl;}
    7.   Foo(const Foo& b) {cout <<"copy constructor"<<endl;}
    8.   void operator=(const Foo& b) {cout <<"assignment"<<endl;}
    9.   ~Foo() {cout<<"destructor"<<endl;}
    10. };
    11. int main()
    12. {
    13.   Foo x,z;
    14.   Foo y = x;
    15.   z = y;
    16.   return(0);
    17. }

    22. What is the output of the following program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class Foo
    4. {
    5. public:
    6.   int k;
    7.   ~Foo() {cout<<"destructor: "<<k<<endl;}
    8. };
    9. int main()
    10. {
    11.   Foo a[] = {{0}, {1},{2}, {3}};
    12.   return(0);
    13. }

    23. Consider the following program:
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class Employee
    4. {
    5. public:
    6.   char name[30];
    7.   int age;
    8.   void display()
    9.    {cout<<name<<"  "<<age<<endl;
    10.    }
    11. };
    12. int main()
    13. {
    14.   Employee t ={"ABC",25};
    15.   t.display();
    16.   Employee h ={{'X','Y','Z'},25};
    17.   h.display();
    18.   // Employee g; g={"ABC",25};  (1)
    19.   return(0);
    20. }
    a. What is the output?
    b. What happens if you change the protection level of data to private?
    c. What happens if you add constructors with prototypes like:
    C++ Code:
    1. Employee();
    2. Employee(char *name1, int age1);

    24. What is the output of the following program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class Base
    4. {
    5. public:
    6.   char t;
    7.   Base() {t='$';}
    8.   Base(char x) {t=x;}
    9.   virtual void display() {cout<<t<<" ";}
    10. };
    11. class Derived : public Base
    12. {
    13. public:
    14.   char h;
    15.   Derived(char x, char y) {t=x; h=y;}
    16.   void display() {cout<<t<<h<<" ";}
    17. };
    18. int main()
    19. {
    20.   int n,i;
    21.   Base *a[] = {new Base(), new Derived('u','v'), new Base('r'), new Derived('z','t')};
    22.   n = sizeof(a)/sizeof(a[0]);
    23.   for (int i=0; i<n; i++) a[i]->display();
    24.   cout << endl;
    25.   Base *b = new Base[n];
    26.   for (i=0; i<n; i++) b[i] = *a[i];
    27.   for (i=0; i<n; i++) b[i].display();
    28.   cout<<endl;
    29. }

    25. What is the output of the following program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class Base
    4. {
    5.     public:
    6.     Base() {cout<<"Base constructor"<<endl;}
    7.     ~Base() {cout<<"Base destructor"<<endl;}
    8. };
    9. class Derived : public Base
    10. {
    11. public:
    12.     Derived() {cout<<"Derived constructor"<<endl;}
    13.     ~Derived() {cout<<"Derived destructor"<<endl;}
    14. };
    15. int main()
    16. {
    17.    Base *a[] = {new Base(), new Derived()};
    18.    cout<<endl;
    19.    for(int i=0; i<3; i++) delete a[i];
    20. }
    26. What is the output of the following program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class Foo
    4. {
    5. public:
    6.   int n;
    7.   Foo(int x) {n=x;}
    8.   Foo operator*(Foo b)
    9.   {
    10.      n *= b.n;
    11.      return b;
    12.    }
    13. };
    14. ostream &operator<<(ostream &o, Foo a) { cout << a.n; return o;};
    15. int main()
    16. {
    17.    Foo a=10, b=5, c=0;
    18.    c = a*b;
    19.    cout << a << " " << b << " " << c << endl;
    20. }

    27. What happens when running the following program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class A
    4. {
    5. private:
    6.   int x, y;
    7.   public:
    8.   A(int x1, int y1);
    9.   void disp() ;
    10. };
    11. A::A(int x1, int y1)
    12. { x =x1; y=y1; }
    13.  
    14. void A::disp()
    15. {cout << x <<y; }
    16.  
    17. int main()
    18. {
    19.   A a1;
    20.   A a2(20, 10);
    21.   a1 = a2;
    22.   a1.disp();
    23. }

    28. What happens when running the following program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class A
    4. {
    5. private:
    6.   int x,y;
    7.   public:
    8.   A(int x1, int y1)
    9.    {x = x1; y=y1; }
    10.   void view()
    11.    {cout<< x <<", "<< y; }
    12. };
    13. void foo()
    14. {
    15.   A a(10, 10);
    16.   a.x += 10;
    17.   a.y = a.x;
    18.   a.view();
    19.  }
    20. int main()
    21. {
    22.   foo();
    23.   return(0);
    24.  }

    29. What is the output of the following program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class A
    4. {
    5. private:
    6.   int x,y;
    7.   public:
    8.   A(int x1, int y1)
    9.    {x = x1; y=y1;}
    10.   void operator += (A a)
    11.    {x+= a.x;
    12.     y += a.y;
    13.    }
    14.   void disp()
    15.    {cout<<x<<", "<<y<<endl;}
    16. };
    17. int main()
    18. {
    19.    A a1(5, 5), a2(10,10);
    20.    a2 += a1;
    21.    a2.disp();
    22. }

    30. What happens when running the following program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class A
    4. {
    5. public:
    6.   virtual void disp() = 0;
    7. };
    8.  
    9. class B: public A
    10. {
    11. public:
    12.   virtual void disp() = 0;
    13. };
    14.  
    15. class C: public B
    16. {
    17. public:
    18.   void disp() { cout<<"u"<<endl; }
    19. };
    20. int main()
    21. {
    22.   B *p, b;
    23.   C c;
    24.   p = &b;
    25.   p ->disp();
    26.   p = &c;
    27.   p ->disp();
    28. }

    31. What is the output of the program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. int x;
    4. void test()
    5. {
    6.     cout<<x<<"  ";
    7.     x =10;
    8.     cout<<x<<"  ";
    9. }
    10. int main()
    11. {
    12.     x = 5;
    13.     test();
    14.     cout<<x<<"  ";
    15.     return(0);
    16. }

    32. What is the output of the program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. void test(char s1[], char *s2)
    4. {
    5.    strcpy(s1,"CC");
    6.    s2 = new char[4];
    7.    strcpy(s2,"DD");
    8.    cout<<s1<<"  "<<s2<<"  ";
    9. }
    10. int main()
    11. {
    12.     char s1[] ="AA", s2[] = "BB";
    13.     test(s1,s2);
    14.     cout<<s1<<"  "<<s2<<endl;
    15.     return(0);
    16. }

    33. What is the output of the program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. void test(char s1[], char s2[])
    4. {
    5.    strcpy(s1,"CC");
    6.    strcpy(s2,"DD");
    7.    cout<<s1<<"  "<<s2<<"  ";
    8. }
    9. int main()
    10. {
    11.     char s1[] ="AA", s2[] = "BB";
    12.     test(s1,s2);
    13.     cout<<s1<<"  "<<s2<<endl;
    14.     return(0);
    15. }

    34. What is the output of the program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. void test(float *p, int y)
    4. {
    5.     cout<<*p<<"  ";
    6.     p = new float;
    7.     *p=1;
    8.    cout<<*p<<"  "<<y<<"  ";
    9.      y = 2;
    10. }
    11. int main()
    12. {
    13.     float x; int y;
    14.     x = 5; y = 7;
    15.     test(&x,y);
    16.     cout<<x<<"  "<<y<<endl;
    17.     return(0);
    18. }

    35. What is the output of the program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class A
    4. {
    5. private:
    6.    int *px, y, z;
    7.    public:
    8.    A() {px=new int;}
    9.    void setX(int c) {*px = c;}
    10.    void setData(int a, int b, int c) {*px = a; y=b; z=c;}
    11.    void show() {cout<<*px<<"  "<<y<<"  "<<z<<endl;}
    12.  };
    13. int main()
    14. {
    15.     A u,v;
    16.     int a,b,c;
    17.     a=7;b=9;c=6;
    18.     u.setData(a,b--,++c);
    19.     v=u;
    20.     u.setX(11);
    21.     v.show();
    22.     return(0);
    23.  }

    36. What is the output of the program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class A
    4. {
    5. private:
    6.    int x;
    7.    public:
    8.    A() { x=0; }
    9.    A(int v) { x=v;}
    10.    A& operator=(int i) { x=i; return(*this);}
    11.    int operator+(A p) { return( x - p.x);}
    12.    friend ostream &operator<<( ostream &os, const A &p )
    13.     {os<<p.x;return(os);}
    14. };
    15. int main()
    16. {
    17.   A a=3; A b=7; A c,d, e;
    18.   c = a+b; d = 3 + 7;
    19.   cout<<a<<"  "<<b<<"  "<<c<<"  "<<d<<"  "<<e<<endl;
    20.   return(0);  
    21. }

    37. What is the output of the program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class A
    4. {
    5.     char label[5]; int x,n;
    6.     public:
    7.     A(int k=4) {n=k;}
    8.     A& operator=(const A&);
    9.     void setData(char *xLabel, int u);
    10.     void display();
    11. };
    12. A& A::operator=(const A& b)
    13. {
    14.     A(); strcpy(label,b.label);
    15.     x = b.x; n = b.n-1;
    16.     label[n]='\0';
    17.     return(*this);
    18. }
    19. void A::setData(char *xLabel, int u) { strcpy(label,xLabel); x = u+1;}
    20.  
    21. void A::display() { cout<<label<<"  "<<x<<"  ";}
    22.  
    23. int main()
    24. {
    25.     A a(5), b, c;
    26.     a.setData("ABCDE", 2);
    27.     b = a;
    28.     c = b;
    29.     a.display();
    30.     b.display();
    31.     c.display();
    32.     cout<<endl;
    33.     return(0);
    34. }

    38. What is the output of the program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class A
    4. {
    5.     char *label; int x,n;
    6. public:
    7.     A(int k=3) {label=new char[5]; n=k;}
    8.     A& operator=(const A&);
    9.     void setData(char *xLabel, int u);
    10.     void display();
    11. };
    12. A& A::operator=(const A& b)
    13. {
    14.     A(); label=b.label;
    15.     x = b.x; n = b.n-1;
    16.     label[n]='\0';
    17.     return(*this);
    18. }
    19. void A::setData(char *xLabel, int u) { strcpy(label,xLabel); x = u+1; }
    20. void A::display() { cout<<label<<"  "<<x<<"  "; }
    21.  
    22. int main()
    23. {
    24.     A a, b;
    25.     a.setData("ABCD", 3);
    26.     b = a;
    27.     b.display();
    28.     a.setData("XYZ", 4);
    29.     b.display();
    30.     cout<<endl;
    31.     return(0);
    32. }

    39. What is the output of the program?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class A
    4. {
    5.     char *label; int x,n;
    6. public:
    7.     A(int k=3) {label=new char[5]; n=k;}
    8.     A& operator=(const A&);
    9.     A(const A&);
    10.     void setData(char *xLabel, int u);
    11.     void display();
    12. };
    13. A& A::operator=(const A& b)
    14. {
    15.     setData(b.label,b.n);
    16.     return(*this);
    17. }
    18.  
    19. A::A(const A& b)
    20. {
    21.     A(); label=b.label;
    22.     x = b.x; n = b.n-1;
    23.     label[n]='\0';
    24. }
    25. void A::setData(char *xLabel, int u) { strcpy(label,xLabel); x = u; }
    26. void A::display() { cout<<label<<"  "<<x<<"  "; }
    27. int main()
    28. {
    29.     A a;
    30.     a.setData("ABCD", 3);
    31.     A b=a;
    32.     b.display();
    33.     a.setData("XYZ", 4);
    34.     b.display();
    35.     cout<<endl;
    36.     return(0);
    37. }
    40. Which line in the following program has an error?
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. class Computer
    4. {
    5. protected:
    6.    char name[20];
    7.    public:
    8.    Computer(char *xName)  { strcpy(name,xName); }
    9.    virtual void print() { cout<<name<<"   "; }
    10. };
    11. class Toshiba: public Computer
    12. {
    13. private:
    14.    char color[15];
    15.    public:
    16.    Toshiba(char *xName, char *xColor) : Computer(xName) { strcpy(color,xColor); }
    17.    void print()
    18.      {
    19.        Computer::print();
    20.        cout<<color<<"   ";
    21.      }
    22.    void view() { cout<<name<<"   "; }
    23. };
    24. int main()
    25. {
    26.    Computer *p;
    27.    Toshiba u("ABC", "blue");
    28.    p = &u;
    29.    p->view();
    30.    p->print();
    31.    return(0);  
    32. }
    Đã được chỉnh sửa lần cuối bởi langman : 08-04-2010 lúc 12:20 AM. Lý do: thêm tag code
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  2. #2
    Ngày gia nhập
    01 2010
    Nơi ở
    до свидания!
    Bài viết
    1,766

    Chưa xem kỹ, nhưng nhìn thì khỏi "chê"! Có thể nhận xét "tạm" là Quá hay (chứ không còn là Khá hay nữa!). Hy vọng các bạn tham gia chủ đề này cũng có những cảm nhận như tôi! Hì.....(Động tác nhanh nhất của tôi là: Ctrl+S trang này để về xem offline)!

  3. #3
    Ngày gia nhập
    03 2010
    Bài viết
    2

    Trích dẫn Nguyên bản được gửi bởi peterdrew Xem bài viết
    Chưa xem kỹ, nhưng nhìn thì khỏi "chê"! Có thể nhận xét "tạm" là Quá hay (chứ không còn là Khá hay nữa!). Hy vọng các bạn tham gia chủ đề này cũng có những cảm nhận như tôi! Hì.....(Động tác nhanh nhất của tôi là: Ctrl+S trang này để về xem offline)!
    MÌnh cũng save về tham khảo đây, cảm ơn mọi ngừoi nhá,hay quá !

  4. #4
    Ngày gia nhập
    09 2009
    Nơi ở
    205Bee
    Bài viết
    231

    chủ đề này có từ lúc nào vậy ta. may mà soát lại. . mình đang học OOP

  5. #5
    Ngày gia nhập
    12 2010
    Nơi ở
    Hà Nội
    Bài viết
    137

    Ko có đáp án à mấy anh?
    Freelancer, free coder, free tester.
    Nhận hợp tác viết app, viết midlet khi free time.
    Tình trạng: Siêu bận!

  6. #6
    Ngày gia nhập
    03 2009
    Nơi ở
    %appdata%\Temp
    Bài viết
    819

    Mặc định Một số câu hỏi hay về OOP

    Mình góp ý một chút. Hơi ít câu hỏi về OOP mà chỉ cơ bản tập trung vào đặc trưng của ngôn ngữ C++. Những lí thuyết OOP và thiết kế chương trình hướng đối tượng chưa được thảo luận nhiều. Cái này mình đang cần tìm hiểu. Chẳng hạn khi chỗ này nên đặt là private hay protected, chỗ kia nên để static hay non static, rồi thì extends thế nào cho hiệu quả, override... đủ thứ phải bàn, hơn là xoay quanh kiểu đoạn code này cho ra cái gì, lỗi ở đâu -> Nghe có vẻ ko liên quan gì đến oop cho lắm
    PS: Cũng không nên đánh đồng những ngôn ngữ hỗ trợ OOP như C++, C#, Java với OOP. Người ta có thể viết 1 chương trình bằng Java mà chẳng OOP tí nào (bad coding)
    .::[The best way to predict the future is to invent it]::.
    __________________________________________________ _ - Alan Kay -

  7. #7
    Ngày gia nhập
    10 2011
    Bài viết
    2

    Trích dẫn Nguyên bản được gửi bởi Wazi Armstrong Xem bài viết
    Mình góp ý một chút. Hơi ít câu hỏi về OOP mà chỉ cơ bản tập trung vào đặc trưng của ngôn ngữ C++. Những lí thuyết OOP và thiết kế chương trình hướng đối tượng chưa được thảo luận nhiều. Cái này mình đang cần tìm hiểu. Chẳng hạn khi chỗ này nên đặt là private hay protected, chỗ kia nên để static hay non static, rồi thì extends thế nào cho hiệu quả, override... đủ thứ phải bàn, hơn là xoay quanh kiểu đoạn code này cho ra cái gì, lỗi ở đâu -> Nghe có vẻ ko liên quan gì đến oop cho lắm
    PS: Cũng không nên đánh đồng những ngôn ngữ hỗ trợ OOP như C++, C#, Java với OOP. Người ta có thể viết 1 chương trình bằng Java mà chẳng OOP tí nào (bad coding)
    Điều này liệu có thể xảy ra khi mà java là một ngôn ngữ hướng đối tượng ko vậy bạn.
    Ngay cả câu lệnh in System.out cũng có liên quan tới đối tượng roài mà.
    À mình không có ý gì đâu, ừm mình đồng ý cái nên thảo luận về OPP đúng là việc OOD (Thiết kế hướng đối tượng) hơn là việc tập chung vào một bài cụ thể.
    Vote ý của bạn.

  8. #8
    Ngày gia nhập
    07 2012
    Bài viết
    8

    Question Chức năng của hàm textattr(0x1e)

    Mọi người ơi! Em đọc đc tài liệu về hàm này, nhưng ko biết chức năng nó làm j cả.....ai biết giúp em với nha.....Củm ơn mọi người nhiều..
    textattr(0x1e)

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn