一些例外情况

的重载操作符的左操作数必须是类类型的对象。

最左边的操作数成为隐*此参数。所有其他操作数变功能参数。

大多数操作符可以重载,无论哪种方式,但是有一些例外情况:

如果左边的操作数不是类类型的成员,如当重载操作符+(int,yourclass),或运算符<<(ostream&,yourclass),操作者必须重载时是一个朋友。

分配(=),下标([]),叫(()),和成员选择(->)运营商必须重载成员函数。

重载一元负(-)算子

负算子是一元运算符,可以使用任一方法实现。在我们告诉你如何重载运算符使用一个成员函数,这是一个提醒我们如何使用友元函数的重载:

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Cents
{
private:
    int m_nCents;
 
public:
    Cents(int nCents) { m_nCents = nCents; }
 
    // Overload -cCents
    Cents operator-();
};
 
// note: this function is a member function!
Cents Cents::operator-()
{

在几乎所有的好处,也有一些潜在的不利的例外以及。本文并不完整,但只是想指出一些重大问题时应该考虑使用异常(或决定是否使用它们)。

清理资源

其中一个最大的问题,新的程序员遇到时使用的例外是清理资源时发生异常问题。考虑下面的例子:


转座子元件 (TE) 是植物基因组中基因复制和 CNV 的主要驱动因素(马等人,2023 年)。为了进一步研究大麦中 bHLH CNV 的潜在遗传机制,我们预测了 20 个大麦泛基因组组装中的 TE,并搜索了发生在本研究中确定的 bHLH上游/下游 (包括基因区域) 2 kb 范围内的 TE。仅考虑完整的 TE。结果(图 4B;补充数据 12)显示大麦泛基因组中的 3411 个 bHLHs 中有 1707 个 (50%) 包含基因上游/下游 2 kb 范围内的完整 TE。我们注意到 464 bHLH在 2 kb 的上游/下游区域包含超过 1 (2 至 9) 个完整的 TE。DNA 转座子 (TcMar、PIF-Harbinger、MULE、hAT、CMC-EnSpm) 占 bHLH内或附近鉴定的 TE 的大部分 (∼75%),RNA 介导的反转录转座子 (Helitron、Copia、Gypsy、SINE、LINE) 约占 25%。对于具有 CNV 的 bHLH 泛基因,每个基因平均鉴定出 1.48 个 TE,显著高于无 CNV 的 bHLH每个基因鉴定的 1.36 个 TE (p = 0.0145),表明 TE 在 CNV 中具有潜在作用(图 4C)。就 bHLH 亚家族而言,尽管鉴定的 TE 数量通常与每个亚家族中核心 bHLH 的数量成正比(图 4D;表 1;补充数据 12),观察到一些例外情况。例如,SF25 包含数量最多的核心 bHLHs,但仅占 TE 的 6.3%,相比之下,SF01 (占 TE 的 14.0%) 和 SF28 (占 TE 的 9.8%)。值得注意的是,SF13 包含中等数量的核心 bHLHs,但占 TE 的 9.5%,这显然是由于本研究中发现的 SF13b 的显着扩增。事实上,进一步的检查表明,SF13b 占 SF13 中 TE 的 28%。SF27b 也可以进行相同的观察,它占 SF27 中 TE 的 48.8%。然而,SF28b 似乎并非如此,它仅占 SF28 亚家族中 TE 的 9.5%。这些结果表明,TE 对 bHLH 家族扩展的潜在贡献可能因不同的亚家族而异。使用具有默认参数的 HiTE 程序 (胡 et al., 2024) 在 20 个大麦泛基因组种质的伪分子序列中鉴定 TE。仅使用完整的 TE 进行下游分析。使用 bedtools 程序将 TE 与 bHLH 基因重叠 (Quinlan 和 Hall, 2010)。如何实现
最新发布
06-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值