Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: class vector ,có dùng template bắn ra lỗi Error LNK2019,Error LNK1120

  1. #1
    Ngày gia nhập
    03 2017
    Nơi ở
    đà nẵng
    Bài viết
    2

    Mặc định class vector ,có dùng template bắn ra lỗi Error LNK2019,Error LNK1120

    các phương thức trong vector
    vector.h
    Code:
    #pragma once
    template<class T>
    class Vector;
    
    template<class T>
    istream& operator>>(istream&, Vector<T>&);
    
    template<class T>
    ostream& operator<<(ostream&, Vector<T>&);
    //ham tu do o ngoai
    
    template<class T>
    class Vector
    {
    private:
    	T *arr;
    	int n, capacity;
    public:
    	Vector();
    	~Vector();
    	Vector<T> operator=(const Vector<T>&);
    	Vector(const Vector<T> &);// ten ham ko phai la 1 doi tuong
    	void input();
    	void output();
    	friend istream& operator>> <>(istream &, Vector<T>&);
    	friend ostream& operator<< <>(ostream &, Vector<T>&);
    	const T &operator[](int index)const;
    	T &operator[](int index);
    	int getLength() { return n; }
    	int getCapacity() { return capacity; }
    	bool isEmpty() { return n; }
    	bool add(T element);
    	int find(T element);
    	bool removeIndex(int index);
    	bool remove(T element);
    	bool assign(Vector vector2);
    	bool assignNoduplicate(Vector vector2);
    	bool push_back(T element);
    	T pop_back();
    	void readFile(string path);
    };
    file vector.cpp
    Code:
    #include "stdafx.h"
    #include "Vector.h"
    
    
    template<class T>
    Vector<T>::Vector()
    {
    	capcity = 10;
    	n = 0;
    	arr = new T[capacity];
    }
    
    template <class T>
    Vector<T>::~Vector()
    {
    	delete arr;
    	
    }
    
    template<class T>
    Vector<T> Vector<T>::operator=(const Vector<T> &arr2)
    {
    	this->capacity = arr2.capacity;
    	this->n = arr2.n;
    	this->arr = new T[capacity];
    	for (int i = 0; i < n; i++) {
    		arr[i] = arr2.arr[i];
    	}
    	cout << "toan tu gan" << this << endl;
    	return *this;
    }
    
    template<class T>
    Vector<T>::Vector(const Vector<T> &arr2)
    {
    	this->capacity = arr2.capacity;
    	this->n = arr2.n;
    	this->arr = new T[capacity];
    	for (int i = 0; i < n; i++) {
    		arr[i] = arr2.arr[i];
    	}
    	cout << "ham sao chep cua" << this << endl;
    }
    
    template<class T>
    const T & Vector<T>::operator[](int index) const
    {
    	return arr[index];
    }
    
    template<class T>
    T &Vector<T> :: operator[](int index) {
    	return arr[index];
    }
    
    template<class T>
    bool Vector<T>::add(T element) {
    	if (n == capacity) {
    		capacity *= 2;
    		T*arr2 = new T[capacity];
    		for (int i = 0; i < n; i++) {
    			arr2[i] = arr[i];
    		}
    		arr = arr2;
    	}
    	arr[n++] = element;
    	return true;
    }
    
    template<class T>
    void Vector<T>::input()
    {
    	cout << "nhap n: ";
    	cin >> n;
    	for (int i = 0; i < n; i++) {
    		cout << "element: " << i;
    		cin >> arr[i];
    	
    	}
    
    
    	
    }
    template<class T>
    void Vector<T>::output()
    {
    	for (int i = 0; i < n; i++) {
    		cout << arr[i];
    	}
    }
    
    template<class T>
    int Vector<T>::find(T element) {
    	for (int i = 0; i < n; i++)
    		if (arr[i] == element)
    			return i;
    	return -1;
    }
    
    template<class T>
    bool Vector<T>::removeIndex(int index) {
    	for (int i = 0; i < n - 1; i++) {
    		arr[i] = arr[i + 1];
    	}
    	n--;
    	return true;
    }
    template<class T>
    istream& operator>> (istream &is, Vector<T> &v) {
    	v.input();
    	return is;
    }
    template<class T>
    ostream& operator<< (ostream &os, Vector<T> &v) {
    	v.output();
    	return os;
    }
    ham main
    Code:
    #include "stdafx.h"
    #include "Vector.h"
    template <class T>
    int main()
    {
    	Vector<T> s;
    	cin >> s;
    	cout << s;
    	system("pause");
        return 0;
    }
    khi chạy cho ra 2 lỗi:
    Severity Code Description Project Line
    Error LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) VectorMain 1
    Severity Code Description Project Line
    Error LNK1120 1 unresolved externals VectorMain
    1
    mọi người giúp e giải thích tại sao bắn ra lỗi đấy (biết chắc là sai ở hàm iostream vs ostream đó mn) và cách khắc phục với ) e cảm ơn

    - - - Nội dung đã được cập nhật ngày 16-11-2017 lúc 10:34 PM - - -

    ai đấy rep với nà
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi TranQuocTrung : 16-11-2017 lúc 04:40 PM. Lý do: phát hiện ra chỗ sai

  2. #2
    Ngày gia nhập
    08 2017
    Bài viết
    3,660

    Ku lập trình trên notepad à ?
    Chụi khó định dạng lại đi

  3. #3
    Ngày gia nhập
    03 2017
    Nơi ở
    đà nẵng
    Bài viết
    2

    e làm trên vs2015 mà lúc dán trên này ra định dạng như trên đó a

  4. #4
    Ngày gia nhập
    08 2017
    Bài viết
    3,660

    copy, paste and edit:
    C++ Code:
    1. #include "stdafx.h"
    2. #include "Vector.h"
    3. template <class T>
    4. int main(){
    5.     Vector<T> s;
    6.     cin >> s;
    7.     cout << s;
    8.     system("pause");
    9.     return 0;
    10. }
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Tags của đề tài này

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