MATLABC ++クラスクラスの生成生成生成生成
c ++コードをする场合,コードジェネレーター既定の动作ではは,,®C ++クラスクラスクラスクラスクラスクラス生成され。これこれにはは,,,,値値値クラスクラス,クラスクラスクラスクラスクラス,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
コードジェネレーターの动作を変更して,ててクラスクラス対応する体体をを生成生成できできできますます既定の动作动作をを変更変更変更するにはは
コード构成オブジェクト,
TargetLang
を'C ++'
に,cpppreserveclasses
を错误的
に设定し。MATLAB CODER™アプリの[生成]ステップで,[言语]を[C ++]に设定ます。のビルド设定の[コード]タブで,[matlabクラスからc ++クラスを]チェックボックスオフにし。。
Matlabクラスクラスクラスクラスををををクラスにする际コードコードジェネレーターが従う特定ののますます示し示し
例:プライベートメンバーパブリックをもつハンドルのコード生成
matlabハンドルクラス我的课
を定义し。
ClassDefmyclass <句柄特性publicProp = 1;结尾特性(访问=私人)privateProp结尾方法功能obj = myClass(value)obj.privateProp = value;结尾功能publicMethod(obj,value)obj.privatemethod(value);结尾功能res = calculatesOmeValue(obj)res = obj.publicprop*obj.privateprop;结尾结尾方法(访问=私有)功能privateMethod(obj,value)obj.publicprop = obj.publicprop + value;obj.privateprop = obj.privateprop + obj.doublethisvalue(value);结尾结尾方法(静止的)功能res = DoubleThisValue(val)res = 2 * val;结尾结尾结尾
我的课
を使用するmatlab关数foo
を定义し。
功能out = foo(x,y)obj = myClass(x);obj.publicmethod(y);out = obj.calculatesOmeValue;结尾
foo
c ++スタティックスタティックを生成します。入力引数をををスカラースカラーにしますます。コード生成プロパティプロパティプロパティInlineBetweenuserfunctions
を'可读性'
に设定し。
cfg = coder.config('lib');cfg.targetlang ='C ++';cfg.inlinebetweenuserfunctions ='可读性';代码根-configCFGfoo-args{0,0}-报告
代码生成成功:查看报告
コード生成开き,されたをしします。ファイルmyclass.h
C ++クラスクラスクラス生成生成生成クラスクラスクラス我的课
の定义含まれて。。
类myclass {public:myClass *init(double value);void publicMethod(双重值);静态双重脱氧气(双阀);double carculate omeValue()const;双公共销售;私人:Double PrivateProp;};
关数foo
に対して生成れコードはのとおりです。
double foo(double x,double y){myclass obj;obj.init(x);obj.publicmethod(y);返回obj.calculatesOmeValue();}
C ++クラスクラスを生成するにコードが従ういくつのの规则规则,,,,我的课
に対して生成たコード対応するスニペット示し。。。
ルール | コードスニペット |
---|---|
matlabののはは |
ファイル myclass *myClass :: init(double value){myClass *obj;obj = this;obj-> publicProp = 1.0;obj-> privateProp = value;返回obj;} |
matlabでででプライベート设定さいるクラスメンバーはは生成ささされれたたたたたたたたたコードコードコードコードでも c ++ c ++コードコードコードにパブリックメソッドをインラインととと,,生成生成生成さささコードたたれれれれれコードコードコードコードプロパティががパブリックパブリックにににれれれれ,,,,,, この発生するに,ジェネレーターは次场合ににパブリックメソッドに対して特别特别なインラインインライン化规则がが使用使用
次の,通常关数パブリックメソッド両方にインライン化规则がが适用ささ。。。
生成コードパフォーマンス性を微调整するのインライン化の制御を参照しください。 |
C ++クラスクラスクラスクラス 类myclass {public:myClass *init(double value);void publicMethod(双重值);静态双重脱氧气(双阀);double carculate omeValue()const;双公共销售;私人:Double PrivateProp;}; すべてのメンバー关数の可视性は,,とととさたコードコードの间でで维持さ。。 プライベートメソッド void myclass :: publicMethod(double value){this-> publicProp += value;this-> privateProp += myClass :: doublethisvalue((value));} |
matlabの的はははは静静静にされて。。。 |
静的メソッド 静态双重脱氧气(双阀); |
生成さたで,オブジェクトをしないメソッドは |
パブリックメソッド double carculate omeValue()const; |
その他使用の注意事项および事项事项
matlabクラスのc ++クラスクラス生成はそのにも使用上の注意事项制限制限がいくついくついくつか
我的课
のクラスプロトタイプはファイルファイルmyclass.h
に含まいますクラスのメソッド実装ファイルファイルファイルmyclass.cpp
に含まています。生成さたで,クラス阶层はになります。たとえば,,,,,,,コードコード
b
がクラス一个
から継承れるします。生成れれたたたたたコードコードコードでクラスb
とクラス一个
の间关系ありません。れたコードではクラス一个
のすべてプロパティおよびメソッドクラスクラスb
の定义再现され。。matlabクラスがに対して异なる型使用场合コードジェネレーターは型のの使用ごとにに个别ののののののののののののの
matlabクラスメンバーの
GetAccess
属性とsetAccess
属性が,されたクラスするメンバーは,,,つのつのつの属性のうち许容性性がが高い方方ををもちもち支柱
が属性(getAccess = public,setAccess = private)
をもつ场合生成れたコードで,,支柱
はパブリックとして定义さ。。matlabクラスするするするクラスクラス含む含むコード生成生成としたたときときに以下以下の両方両方の条件に该当するはは,警告
コード构成オブジェクトで
MultiInstanceCode
パラメーターをにするか,MATLAB编码器アプリで[再呼び出しなコード]パラメーターをするで,呼び出し可能なをするように选択し。。matlabコードののデストラクター永続もつ,永続ををしして使用する别のをををを
Matlabクラスクラスクラスクラスにするするするするするクラスクラスクラス含むを生成するするは,,,
MultiInstanceCode
パラメーターまたは[再呼び出しなコード]パラメーターをにします。
参考
Coder.CodeConfig
|Coder.embeddedCodeConfig
|coder.mexcodeconfig