Вы обнаружили, что ваше исследование состоит в том, что argc
используется в main
, чтобы определить, сколько аргументов командной строки было передано программе при ее вызове.Это не то, что вам нужно.
Поскольку set
принимает два параметра, вызывающая сторона всегда должна будет указывать outOf
.Это означает, что вам никогда не нужно проверять, был ли он поставлен.Если вы хотите иметь возможность вызывать set
с или без предоставления outOf
, тогда вам нужен аргумент по умолчанию для outOf
, который будет использоваться кодом, если вызывающий не предоставит его.Это изменит ваш set
на
void Mark::set(double mark, int outOf = 1){
m_mark= mark;
m_outOf=outOf;
}
И теперь m_outOf
будет установлен на 1
, если вы вызовете набор, подобный foo.set(1)
, и будет установлен на значение N
, если выЗвоните set
как foo.set(1, N);