01/10/2018, 00:48

Hỏi cách tạo 1 mảnh chứa các objects thuộc nhiều class khác nhau

Mn chỉ giúp mình cách nào tối ưu nhất với. Cảm ơn các bạn

Hidan viết 03:04 ngày 01/10/2018

có phải là tạo các class Meo, Cho rồi ke thua DongVat xong tao mot mang kieu DongVat roi add cac doi tuog meo cho kia vao ko biet dung ko nua

public class MyMain {
	public static void main(String[] args) {
		Cho cho = new Cho();
		Meo meo = new Meo();
		DongVat arr[] = new DongVat[2];
		arr[0] = meo;
		arr[1] = cho;
	}
}

hehe ko bi lỗi.

Văn Dương viết 02:57 ngày 01/10/2018

Tạo mảng kiểu object xem sao.

Hidan viết 03:04 ngày 01/10/2018

vậy c++ giống hệt với java à

viết 03:03 ngày 01/10/2018

cùng là ngôn ngữ OOP mà, muốn giống thì nó giống thôi

hoặc có thể xài boost::any

#include <iostream>
#include <boost/any.hpp>
#include <vector>
#include <string>

using many = std::vector<boost::any>;

int main()
{
    many p;
    p.push_back(10);
    p.push_back((const char*)"hello");
    p.push_back(std::string{"world"});
    
    for (auto& a : p)
    {
        try {
            auto b = boost::any_cast<int>(a);
            std::cout << b << "\n";
        } catch (const boost::bad_any_cast&) {
            try {
                auto b = boost::any_cast<const char*>(a);
                std::cout << b << "\n";
            } catch (const boost::bad_any_cast&) {
                try {
                    auto b = boost::any_cast<std::string>(a);
                    std::cout << b << "\n";
                } catch (const boost::bad_any_cast&) {
                    std::cout << "Unknown type\n";
                }
            }
        }
    }
}

http://rextester.com/CEFV60368

Bài liên quan
0