Announcement

Collapse
No announcement yet.

Hỏi hướng đối tượng

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hỏi hướng đối tượng

    Hiện là e chỉ ms học class chưa lâu.
    Lỗi là khi xuất ra thì sau khi thực hiện phép gán(assig) thì nó bị lỗi giá trị s2.ko hiểu vì sao nữa.rồi khi gõ đễ thoát thì thêm lỗi debug assertion failed
    đoạn header.h:
    PHP Code:
    #include <stdio.h>

    #include <iostream>
    #include <stdlib.h>
    #include <math.h>

    using namespace std;

    class 
    bigint
    {
    public:
        
    bigint();
        
    bigint(long);
        
    bigint(char*);
        
        ~
    bigint();
        
    void Printf();
        
    void assi(bigint);
        
    private:
        
    char *s;
    };

    bigint::bigint()
    {
        
    this->= new char [256];
        
    s="0";
    }
    bigint::bigint(long n)
    {
        
    this->=new char [256];
        
    itoa(n,this->s,10);
    }
    bigint::bigint(char *str)
    {
        
    this->=new char [256];
        
    strcpy(this->s,str);
    }

    bigint::~bigint()
    {
        
    delete[] this->s;
    }
    void bigint::Printf(){
        
    puts(this->s);
    }
    void bigint::assi(bigint s2){
        
    this->s[0]='\0';
        
    strcat(this->s,s2.s);

    đoạn source
    PHP Code:
    #include "Header.h"

    int main()
    {
        
    bigint s1(12324),    s2("2342425");
        
    s1.Printf();
        
    s2.Printf();
        
    s1.assi(s2);
        
    s1.Printf();
        
    s2.Printf();
        
    system("pause");

    Last edited by 13520797; 10-04-2014, 00:55.

  • #2
    Ko hiểu là hàm strcat vs strcpy nó hoạt động như thế nào chứ đây là hàm thường thấy mà ai cũng chạy dc đây:
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    using namespace std;

    class 
    sinhvien
    {
    public:
        
    sinhvien();
        
    sinhvien(int);
        ~
    sinhvien();
        
    void ass(sinhvien);
        
    void Print();

    private:
        
    int i;
    };

    sinhvien::sinhvien()
    {
        
    this->i=0;
    }
    sinhvien::sinhvien(int n)
    {
        
    this->i=n;
    }
    sinhvien::~sinhvien()
    {
        
    }
    void sinhvien::ass(sinhvien s2){
        
    this->i=s2.i;

    }
    void sinhvien::Print(){
        
    cout<<i<<"  ";
    }

    int main()
    {
        
    sinhvien s1,s2(1000);
        
    s1.Print();
        
    s2.Print();
        
    s1.ass(s2);
        
    s1.Print();
        
    s2.Print();
        
    system("pause");



    Comment


    • #3
      e đã dùng thử với kiểu string thì chạy ok.chả bị gì cả.

      Comment


      • #4
        Cậu thử chữa xem thử: char * strcat ( char * destination, const char * source );
        I don't know the secret to success, but the secret to failure is trying to please everyone

        Comment


        • #5
          Originally posted by tara95 View Post
          Cậu thử chữa xem thử: char * strcat ( char * destination, const char * source );
          mình tham khảo trên cplusplus và msdn rồi.bó tay cả

          Comment


          • #6
            Originally posted by 13520797 View Post
            mình tham khảo trên cplusplus và msdn rồi.bó tay cả
            Do ở đây đối tượng bigint có thành phần là con trỏ (char *s) nên khi truyền vào đối thì nên truyền trực tiếp bằng tham chiếu. Để đảm bảo giá trị của đối tượng bigint không đổi khi kết thúc hàm thì nên thêm const: void assi(const bigint&)
            I don't know the secret to success, but the secret to failure is trying to please everyone

            Comment


            • #7
              Originally posted by tara95 View Post
              Do ở đây đối tượng bigint có thành phần là con trỏ (char *s) nên khi truyền vào đối thì nên truyền trực tiếp bằng tham chiếu. Để đảm bảo giá trị của đối tượng bigint không đổi khi kết thúc hàm thì nên thêm const: void assi(const bigint&)
              thank!ko biết bạn có học trường uit ko?có vẻ bạn cũng biết nhiều vấn đề hay.cho mình xin email có gì cùng trao đổi cho tiện

              Comment

              LHQC

              Collapse
              Working...
              X