多重継承で教えてください

class CSub1
{
int *pdata
CSub1(int i){
pdata=somoting(i);
}
}

class CSub2
{
CSub2(int *pdata){}
}

class CMain:public CSub1 ,public CSub2
{
int *const pdata;
CMain(int i):CSub1(i),pdata(CSub1.pdata),CSub2(CSub1.pdata) //or CSub2(pdata)
{}
}

としてもコンパイルが通りません
CSub1 CSub2は既存のライブラリーのクラスなので変更できません.
解決策はないのでしょうか?