I haven't looked at any C++ code for a long time but your underlying premise:
making a bootfloppy means that the contents of kernel image be copied from the first sector itself rite?
I believe is wrong. All boot floppies have a boot loader. In linux it's almost always syslinux. You write it to a floppy with this command:
# syslinux -s /dev/fd0
It puts a file on the floppy called ldlinux.sys at the appropriate place for the bios to find it on boot. The kernel image(vmlinuz) can be put anywhere on the floppy. Syslinux needs a text configuration file, syslinux.cfg, to tell it the name of the kernel to load and, if there is one, the name of the initrd file. There is usually another text config file for the initial text to display when the floppy first boots. In the booting process, the bios finds the syslinux boot loader and loads into into ram. The bootloader then runs loading the kernel per the settings in the config file.
I guess the short answer is linux(any OS really) needs a boot loader to boot; a kernel can't boot by itself no matter where you put it on the floppy. Also, I don't think it's possible to get a linux kernel small enough to fit on one sector. So I'm kind of puzzled by what your trying to do. Perhaps I've totally missed the point.