You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++如何将Vector3实例设为Quaternion构造函数的默认参数

实现方法

你只需要在Quaternion类的构造函数参数列表中,直接给uAxis传入Vector3(1, 0, 0)作为默认值即可,修改后的代码如下:

class Quaternion {
  public:
    Vector3 axis;
    float scalar;

    // 直接给第一个参数设置默认构造的Vector3实例
    Quaternion(Vector3 uAxis = Vector3(1, 0, 0), float uScalar = 0) {
      axis = uAxis;
      scalar = uScalar;
    };
};
可用的调用方式
  • 无参数构造:Quaternion q; 此时axis为(1,0,0),scalar为0
  • 仅传入axis参数:Quaternion q(Vector3(0,1,0)); 此时axis为(0,1,0),scalar为0
  • 传入两个参数:Quaternion q(Vector3(0,0,1), 1.5f); 此时axis为(0,0,1),scalar为1.5
补充说明

如果你需要支持仅传入scalar参数的构造场景(比如Quaternion q(0.5f);),由于C++默认参数按顺序匹配,无法通过上述默认参数实现,需要额外添加构造函数重载,示例如下:

class Quaternion {
  public:
    Vector3 axis;
    float scalar;

    Quaternion(Vector3 uAxis = Vector3(1, 0, 0), float uScalar = 0) {
      axis = uAxis;
      scalar = uScalar;
    };
    // 新增仅接收scalar的重载
    Quaternion(float uScalar) : axis(Vector3(1, 0, 0)), scalar(uScalar) {};
};

内容的提问来源于stack exchange,提问作者Darcy Power

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:36:04