Jadual Kandungan
~~~~我的生活,我的点点滴滴!!       
这篇文章将围绕两个疑问点展开
一、什么是二段构建模式?
二、为什么要这么用?
Rumah pangkalan data tutorial mysql 浅谈cocos2dx(19) 二段构建模式

浅谈cocos2dx(19) 二段构建模式

Jun 07, 2016 pm 03:33 PM
Bahagian kedua membina model kehidupan

~~~~我的生活,我的点点滴滴!! 这篇文章将围绕两个疑问点展开 一、什么是二段构建模式? 大家都知道在C中我们一般在构造函数中为对象分配内存空间然后初始化成员变量,比如我们调用了new某个东西,那么在堆上会先为对象分配内存空间,然后调用构造函数

~~~~我的生活,我的点点滴滴!!       


这篇文章将围绕两个疑问点展开


一、什么是二段构建模式?

        大家都知道在C++中我们一般在构造函数中为对象分配内存空间然后初始化成员变量,比如我们调用了new某个东西,那么在堆上会先为对象分配内存空间,然后调用构造函数,在构造函数中完成一些初始化的工作。而二段构建模式就是将内存空间的分配和初始化分开来完成,然后调用一个静态方法来返回这个对象。

        就拿cocos2dx中的Sprite类来说吧,当我们调用Sprite::create()的时候内部先使用new来分配内存空间,然后调用init方法来初始化一些变量的设置。所以cocos2dx中的二段构建模式就是将new分配内存空间和init初始化内容分开来处理,而不是c++传统的做法在构造函数中初始化变量。

Sprite* Sprite::create()
{
	//分配内存
	Sprite *sprite = new Sprite();
	//init初始化
	if (sprite && sprite->init())
	{
		//内存管理的工作
		sprite->autorelease();
		return sprite;
	}
	CC_SAFE_DELETE(sprite);
	return nullptr;
}
Salin selepas log masuk

上边就是使用二段构建模式的过程,Sprite首先调用new来分配内存空间,然后调用init函数来完成初始化的工作,顺带还做了内存管理的工作,最后返回初始化好的对象。所以看了Sprite的create方法的实现,我们也知道了应该怎么使用这个二段构建模式了吧。

二、为什么要这么用?

       c++程序员来说初始化工作不都是在构造函数中完成的吗,cocos中为何要这么做呢?

     这里引述一下王哲的话:“其实我们设计二段构造时首先考虑其优势而非兼容cocos2d-iphone. 初始化时会遇到图片资源不存在等异常,而C++构造函数无返回值,只能用try-catch来处理异常,启用try-catch会使编译后二进制文件大不少,故需要init返回bool值。Symbian(qt), Bada SDK,objc的alloc + init也都是二阶段构造”。现在大家明白了吧,兼容Cocos2d-iPhone是一个原因,另一个重要的原因是构造函数没有返回值啊,如果加载资源图片的时候不存在怎么办,所以初始化的工作写在init函数中,这个函数返回的bool值用来判断是否初始化成功。使用这种方法还可以强化设计,想想自己写代码的时候是不是因为没有初始化某个成员变量导致了bug,这样做就是提醒你记得要在init中初始化成员变量。通过create静态函数返回的这个对象也实现了Cocos2dx中的内存管理,就不用我们自己麻烦了。还有一个原因是在C++的构造函数中是不能调用虚函数的,为了调用虚函数来完成一些功能就要写在init函数中。



        以上就是二段构建模式的说明了,在我们写cocos程序的时候其实不知不觉就已经在使用这个构建模式了,想一下我们一个类继承了Layer,然后使用了宏CREATE_FUNC(),这不就是create静态方法吗,在init函数中完成了初始化,整个过程就是在用这种设计模式!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah yang dilakukan oleh mod Jangan Ganggu WeChat? Apakah yang dilakukan oleh mod Jangan Ganggu WeChat? Feb 23, 2024 pm 10:48 PM

Apakah maksud mod Jangan Ganggu WeChat Pada masa kini, dengan populariti telefon pintar dan perkembangan pesat Internet mudah alih, platform media sosial telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian orang ramai. WeChat ialah salah satu platform media sosial paling popular di China, dan hampir semua orang mempunyai akaun WeChat. Kita boleh berkomunikasi dengan rakan, keluarga dan rakan sekerja dalam masa nyata melalui WeChat, berkongsi detik dalam hidup kita dan memahami situasi semasa satu sama lain. Namun begitu, dalam era ini, sudah pasti kita juga berdepan dengan masalah sarat maklumat dan kebocoran privasi terutamanya bagi mereka yang perlu fokus atau

Apakah mod tidur digunakan pada iPhone? Apakah mod tidur digunakan pada iPhone? Nov 04, 2023 am 11:13 AM

Peranti iOS telah lama dapat menjejaki corak tidur anda dan banyak lagi menggunakan apl Kesihatan. Tetapi bukankah ia menjengkelkan apabila anda diganggu oleh pemberitahuan semasa anda sedang tidur? Pemberitahuan ini mungkin tidak relevan dan oleh itu mengganggu corak tidur anda dalam proses. Walaupun mod Jangan Ganggu ialah cara terbaik untuk mengelakkan gangguan semasa tidur, ia boleh menyebabkan anda terlepas panggilan dan mesej penting yang anda terima pada waktu malam. Syukurlah, di sinilah mod tidur masuk. Mari ketahui lebih lanjut mengenainya dan cara menggunakannya pada iPhone. Apakah peranan yang dimainkan oleh mod tidur pada iPhone Mod tidur ialah mod fokus khusus dalam iOS yang diaktifkan secara automatik berdasarkan jadual tidur anda dalam apl "Kesihatan". Ia membantu anda menetapkan penggera dan kemudian

Membina Aliran Pengguna WordPress Tersuai, Bahagian Tiga: Tetapan Semula Kata Laluan Membina Aliran Pengguna WordPress Tersuai, Bahagian Tiga: Tetapan Semula Kata Laluan Sep 03, 2023 pm 11:05 PM

Dalam dua tutorial pertama dalam siri ini, kami membina halaman tersuai untuk log masuk dan mendaftar pengguna baharu. Kini, hanya ada satu bahagian aliran log masuk yang tinggal untuk diterokai dan diganti: Apa yang berlaku jika pengguna terlupa kata laluan mereka dan mahu menetapkan semula kata laluan WordPress mereka? Dalam tutorial ini, kami akan menangani langkah terakhir dan melengkapkan pemalam log masuk peribadi yang telah kami bina sepanjang siri ini. Ciri tetapan semula kata laluan dalam WordPress lebih kurang mengikut pendekatan standard di tapak web hari ini: pengguna memulakan tetapan semula dengan memasukkan nama pengguna atau alamat e-mel mereka dan meminta WordPress menetapkan semula kata laluan mereka. Buat token tetapan semula kata laluan sementara dan simpannya dalam data pengguna. Pautan yang mengandungi token ini akan dihantar ke alamat e-mel pengguna. Pengguna klik pada pautan. penting

Mod Jangan Ganggu Tidak Berfungsi dalam iPhone: Betulkan Mod Jangan Ganggu Tidak Berfungsi dalam iPhone: Betulkan Apr 24, 2024 pm 04:50 PM

Malah menjawab panggilan dalam mod Jangan Ganggu boleh menjadi pengalaman yang sangat menjengkelkan. Seperti namanya, mod Jangan Ganggu mematikan semua pemberitahuan panggilan masuk dan makluman daripada e-mel, mesej, dsb. Anda boleh mengikuti set penyelesaian ini untuk membetulkannya. Betulkan 1 – Dayakan Mod Fokus Dayakan mod fokus pada telefon anda. Langkah 1 – Leret ke bawah dari atas untuk mengakses Pusat Kawalan. Langkah 2 – Seterusnya, dayakan “Mod Fokus” pada telefon anda. Mod Fokus mendayakan mod Jangan Ganggu pada telefon anda. Ia tidak akan menyebabkan sebarang makluman panggilan masuk muncul pada telefon anda. Betulkan 2 – Tukar Tetapan Mod Fokus Jika terdapat beberapa isu dalam tetapan mod fokus, anda harus membetulkannya. Langkah 1 – Buka tetingkap tetapan iPhone anda. Langkah 2 – Seterusnya, hidupkan tetapan mod Fokus

iPhone 15 Pro: Bagaimana untuk membuang simbol mod senyap dalam bar status iPhone 15 Pro: Bagaimana untuk membuang simbol mod senyap dalam bar status Sep 24, 2023 pm 10:01 PM

Pada model iPhone 15 Pro dan iPhone 15 Pro Max, Apple memperkenalkan butang tindakan boleh atur cara secara fizikal yang menggantikan suis deringan/senyap tradisional di atas butang kelantangan. Butang tindakan boleh diprogramkan untuk melaksanakan beberapa fungsi yang berbeza, tetapi keupayaan untuk bertukar antara mod senyap dan deringan tidak hilang. Secara lalai, tekan lama pada butang tindakan akan menyenyapkan peranti dan maklum balas sentuhan butang akan berdenyut tiga kali. Kedua-dua model iPhone 15 Pro akan memaparkan simbol loceng berpalang di sebelah masa dalam bar status untuk menunjukkan bahawa mod senyap/senyap diaktifkan, dan ia akan kekal sedemikian sehingga anda menekan lama butang Tindakan sekali lagi untuk menyahredam peranti. Jika anda lebih suka meletakkan iPhone anda dalam mod senyap

Bagaimana untuk mendayakan 'Notepad++ Dark Mode' dan 'Notepad++ Dark Theme'? Bagaimana untuk mendayakan 'Notepad++ Dark Mode' dan 'Notepad++ Dark Theme'? Oct 27, 2023 pm 11:17 PM

Notepad++ dark mode v8.0 tidak mempunyai parameter, Notepad++ ialah editor teks yang paling berguna. Setiap apl yang dijalankan pada Windows 10 menyokong mod gelap. Anda boleh menamakan penyemak imbas web seperti Chrome, Firefox dan Microsoft Edge. Jika anda menggunakan Notepad++, latar belakang putih lalai mungkin menyakitkan mata anda. Pembangun telah menambahkan mod gelap pada versi 8 Notepad++, berikut ialah cara untuk menghidupkannya. Dayakan Notepad untuk Windows 11/10 ++ Dark Mode Launch Notepad ++ Klik "Settings" > "Preferences" > "Dark Mode" Pilih "Enable Dark Mode" untuk memulakan semula Notepad

Perlukah saya menutup komputer riba saya setiap kali? Perlukah saya menutup komputer riba saya setiap kali? Feb 19, 2024 pm 12:09 PM

Komputer riba Windows datang dengan pilihan hibernasi dan penutupan. Apabila anda meletakkan komputer riba anda ke dalam mod tidur, ia memasuki mod kuasa rendah dan anda boleh terus bekerja dalam apa jua cara anda meninggalkannya. Jika anda menutup komputer riba anda, anda perlu menutup semua program dan kerja anda dan mulakan semula. Jika anda ingin berehat dari komputer riba anda sepanjang hari, mod tidur atau mod hibernasi ialah pilihan yang baik. Bagaimana dengan menutup pintu? Perlukah saya menutup komputer riba saya setiap kali? Mari kita ketahui. Perlukah saya menutup komputer riba saya setiap kali? Mungkin idea yang baik untuk mematikan komputer riba anda untuk menjimatkan tenaga dan memanjangkan hayat peranti, terutamanya jika ia tidak digunakan untuk jangka masa yang panjang. Tetapi pada siang hari, adalah idea yang baik untuk meletakkan komputer riba anda ke dalam mod tidur untuk meneruskan tugas anda

Tutorial terperinci tentang cara menyediakan papan kekunci mod tablet win10 pada desktop Tutorial terperinci tentang cara menyediakan papan kekunci mod tablet win10 pada desktop Dec 24, 2023 pm 11:06 PM

Apabila menggunakan mod tablet win10, kita boleh menyambung ke peranti skrin sentuh untuk menggunakan komputer, tetapi ramai pengguna tidak tahu cara menggunakan papan kekunci skrin sentuh dan cara membukanya, jadi datang dan lihat tutorial terperinci ~ win10 mod tablet Tutorial terperinci tentang cara menyediakan papan kekunci pada desktop: 1. Selepas kita memasuki mod tablet, anda boleh melihatnya di bawah. Jom klik. 2. Dengan satu klik, anda boleh menggunakan papan kekunci skrin sentuh.

See all articles